【问题标题】:Need help on modification to mySQL MATCH AGAINST query在修改 mySQL MATCH AGAINST 查询时需要帮助
【发布时间】:2011-10-12 19:54:34
【问题描述】:

我有一个简单的 jQuery/PHP 自动完成文本框,可以从 mySQL 获取匹配项。在我的情况下,如果数据库中的 name

Brand new iPhone and iPod case

$q 是

iph

在我写下整个匹配的单词之前,文本框不会弹出上面的产品名称供我选择。

使用通配符我得到了我的预期结果,但是当 $q 是

iphone ipod

我不会得到上面的产品名称。

$q = $_GET["q"];
WHERE name LIKE '%$q%'

我现在拥有的是下面这个,我的问题是是否有办法在写完整字之前获得结果,并且还支持 iphone ipod 问题。

$q = $_GET["q"];
$words = explode(" ", $q);
$all = mysql_real_escape_string(implode(" +",$words));
WHERE MATCH (name) AGAINST ('+" . $all . "' IN BOOLEAN MODE)

【问题讨论】:

    标签: php mysql


    【解决方案1】:
    $all = mysql_real_escape_string(implode("* +",$words));
    
    
    WHERE MATCH (name) AGAINST ('+" . $all . "*' IN BOOLEAN MODE)
    

    【讨论】:

    • 顺便说一句:您可能需要$words = array_filter($words); 以防止人们使用多个空格时出现空匹配。
    猜你喜欢
    • 2016-10-02
    • 1970-01-01
    • 2011-09-23
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多