自动完成MySQL问题

时间:2011-11-29 12:10:13

标签: mysql autocomplete

我正在使用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";
        }

1 个答案:

答案 0 :(得分:1)

您应该拆分单词数组以搜索并构建如下查询:

SELECT * FROM `table` 
WHERE `columnname` LIKE '%{$sParam1}%' 
  AND `columnname` LIKE '%{$sParam2}%'
  AND `columnname` LIKE '%{$sParam3}%'
ORDER BY `columnname`";