如何限制SELECT MATCH AGAINST仅返回包含所有搜索条件的结果?

时间:2011-07-25 00:08:38

标签: php mysql

如果我的术语是例如 iphone ipod 以下查询

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

会给我包含这两个词或仅包含其中一个词的结果。

如何限制只显示包含这两个字词的结果?速度是我的关注点。

谢谢。

1 个答案:

答案 0 :(得分:1)

在每个单词之前添加+

$words = explode(" ", $term);
$all = implode(" +",$words);

$sql = 
   "SELECT id 
    FROM products
    WHERE MATCH (name) AGAINST ('+" . $all . "' IN BOOLEAN MODE)"

Documentation

请务必转义输入术语以防止SQL注入。