那么你想要使用输入的每个单词进行AND搜索,而不是确切的字符串?怎么样这样:
$searchTerms = explode(' ', $bucketsearch);
$searchTermBits = array();
foreach ($searchTerms as $term) {
$term = trim($term);
if (!empty($term)) {
$searchTermBits[] = "bucketname LIKE '%$term%'";
}
}
...
$result = mysql_query("SELECT * FROM buckets WHERE ".implode(' AND ', $searchTermBits).");
这会给你一个像这样的查询:
SELECT * FROM buckets WHERE bucketname LIKE '%apple%' AND bucketname LIKE '%and%' AND bucketname LIKE '%pear%'
如果要匹配任何搜索词而不是全部,请将AND更改为OR.进一步的改进可能涉及定义一些停止词,如’和’,以提供更好的结果.