2010-03-30 104 views
2

其實我用這個方法來顯示出類似的字搜索請求..MYSQL:類似方法,類似的話 - 但不顯示搜索詞

$query = "SELECT * FROM searches WHERE Query LIKE '%$search%' ORDER BY Query"; 

如果有人搜索「奈」它看起來了在數據庫中類似的話

「妮莉費塔朵,奈英尺凱利。」 ......

,但我不希望出現的搜索詞..

例如:您曾搜尋nelly - tr y這也是:nelly,nelly furtado,nelly ft。,

大膽的單詞不應該再出現,因爲它是被搜索的單詞..有沒有可能是MATCH AGAINST的方法?謝謝!

回答

5

難道你不能只是做一些像...WHERE Query LIKE "%$search%' AND Query <> '$search'...

不區分大小寫:Query LIKE "%$search%' AND STRCMP(Query, '$search') == 0

+0

謝謝,太棒了! – elmaso 2010-03-30 16:41:23

+0

它適合你嗎?我試過這個查詢和耐莉仍然在結果... – 2010-03-30 16:50:59

+0

@Leniel Macaferi,我認爲這可能是由於區分大小寫。我已更新查詢以反映不區分大小寫的搜索。 – 2010-03-30 17:55:14

0

Leniel - 這可能是由於資本化,搜索術語仍然顯示,即*LIKE "nelly"*會發現"nelly""Nelly""NeLlY"等而* <> "nelly"*排除"nelly"(小寫)。

也許不喜歡會產生更好的結果,或str_to_lower您離開PHP之前的輸入並將其與LOWER(column_name)比較以匹配所有情況。