【问题标题】:MySQL - Query search starts with numberMySQL - 查询搜索以数字开头
【发布时间】:2017-02-24 20:03:34
【问题描述】:

我有以下 MySQL 查询,它搜索从 10 到 7000 的展位号。该查询是 jquery 自动完成的一部分。当用户开始在字段中输入数字时,我想按起始数字搜索 - 如果完整的数字具有该数字,则不会。

例如:

用户正在搜索 3458 号展位。当他们开始在字段“3”中输入时,他们会看到包含数字 3 的所有展位号的列表(例如 1234、1436、1743 等)。我宁愿它只显示以输入的数字开头并从中向下钻取的展位。

代码如下:

if ($conn)
{
    $ac_term = "%".$_GET['term']."%";
    $query = "SELECT * FROM schedule where booth like :term";
    $result = $conn->prepare($query);
    $result->bindValue(":term",$ac_term);
    $result->execute();

【问题讨论】:

    标签: mysql sql select sql-like


    【解决方案1】:

    只是不要在开头放百分号:

    $ac_term = $_GET['term']."%";
    $query = "SELECT * FROM schedule where booth like :term";
    $result = $conn->prepare($query);
    $result->bindValue(":term",$ac_term);
    $result->execute();
    

    并且 +1 用于使用准备好的语句!

    【讨论】:

      【解决方案2】:

      您目前在搜索词的两端都有通配符。只需从搜索词的开头删除通配符,就可以了:

      $ac_term = $_GET['term']."%";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-03
        • 1970-01-01
        • 2013-03-08
        • 2020-09-08
        • 1970-01-01
        • 1970-01-01
        • 2022-10-04
        • 1970-01-01
        相关资源
        最近更新 更多