布尔模式下的mysql MATCH不起作用

时间:2017-06-16 09:14:52

标签: php mysql pdo

我有一个应该在布尔模式下匹配的查询,它不适用于多个单词,我不知道为什么。如果我搜索一个单词正在工作,当我搜索多个单词时,它不会返回任何内容。

q=$_GET['atr'];

$keys = explode(" ",$q);
        $sql = "SELECT * FROM tbl_products 
            INNER JOIN tbl_products_images_gallery tpig on tpig.id_product=tbl_products.id_product
                             where MATCH ( tbl_products.name) AGAINST ('";
        foreach($keys as $k){
        $sql .= " +$k ";
}
        $sql .="' IN BOOLEAN MODE ) or ";
        $sql .=" MATCH ( tbl_products.slug) AGAINST ('";
        foreach($keys as $k){
        $sql .= " +$k ";
}
        $sql .="' IN BOOLEAN MODE ) "; 

        $sql .=" ORDER BY tbl_products.name ASC ";
        $stmt = $dbh->prepare($sql);
    $stmt->execute();

修改

我看到了问题所在。如果一个单词只有2个字母,则找不到该产品。你知道怎么解决这个问题吗?例如:“delta中的excursie”如果我搜索excursie in它找不到产品,如果我搜索excursie delta它找到了产品。似乎id对2个字符不起作用。

0 个答案:

没有答案