我正在使用this autocomplete tutorial执行自动填充搜索。问题出在SQL中,只有当单词按顺序排列时,它才会显示多个单词的自动完成。
示例:快速的棕色狐狸跳过懒狗。
如果对quick
执行搜索,则会显示包含quick
的所有结果。但是如果我搜索quick lazy
,它就不会显示任何内容。另一方面,如果我搜索quick brown
,它将显示上述句子。
如何以随机顺序对多个单词进行搜索自动填充?
这是SQL:
$sRequest = "SELECT * FROM `table` WHERE `columnname` LIKE '%{$sParam}%' ORDER BY `columnname`";
$aItemInfo = $GLOBALS['MySQL']->getAll($sRequest);
foreach ($aItemInfo as $aValues) {
echo $aValues['columnname'] . "\n";
}
答案 0 :(得分:1)
您应该拆分单词数组以搜索并构建如下查询:
SELECT * FROM `table`
WHERE `columnname` LIKE '%{$sParam1}%'
AND `columnname` LIKE '%{$sParam2}%'
AND `columnname` LIKE '%{$sParam3}%'
ORDER BY `columnname`";