2011-11-29 29 views
0

我正在使用this autocomplete tutorial執行自動完成搜索。問題出在SQL中,只有當單詞順序排列時,纔會顯示多個單詞的自動完成。自動完成MySQL ssue

例如:快速的棕色狐狸跳過了懶狗。

如果執行搜索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

你應該分裂您的話陣列搜索和建立這樣的查詢:

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