如何限制SELECT MATCH AGAINST只返回包含所有搜索项的结果?


How can I restrict the SELECT MATCH AGAINST to return ony results that contains all searched terms?

如果我的条件是例如iphone ipod下面的查询

SELECT id FROM products WHERE MATCH (name) AGAINST ('$term')

将给出包含两个项或仅包含其中一个的结果。

如何限制只显示包含两个项的结果?速度是我最关心的。

谢谢。

在每个单词前添加+:

$words = explode(" ", $term);
$all = implode(" +",$words);
$sql = 
   "SELECT id 
    FROM products
    WHERE MATCH (name) AGAINST ('+" . $all . "' IN BOOLEAN MODE)"

文档

确保转义输入项以防止SQL注入