2011-03-21 69 views
0

我正在使用LIKE運算符來搜索標題。但是,當用戶用空格鍵入單詞時,它不會給出期望的結果,可以做什麼?如何在mysql中搜索標題?

例如:title有 - 國家基礎

當我鍵入national,它返回這個稱號,但是當national geography,就說明沒有發現結果。如何刪除此空間或如何在用戶輸入空格時正確搜索?

+1

http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html – 2011-03-21 14:37:31

+1

副手,我建議分詞的空格。例如「WORD1 WORD2」變成'LIKE'%WORD1%'或LIKE'%WORD2%'(對於非常原始的解決方案)。 – 2011-03-21 14:39:01

+0

@Nishant:出價良好。我大概中途過去了,並說:「我只是想更好地表達這個問題,我可以花一整天時間糾正它。」 ; p – 2011-03-21 14:40:50

回答

1
SELECT Title FROM table 
WHERE MATCH (title) 
AGAINST ('national geography'); 
+1

[全文搜索](http://dev.mysql.com/doc/refman/5.0/en/fulltext-query-expansion.html)建議。 – 2011-03-21 14:42:40

0

假設搜索查詢的用戶輸入存儲在$search

$ex=explode(' ',$search); 
$tempq=''; 
foreach ($ex as $s){ 
    $tempq.=" or title sounds like '$s' "; 
} 
$tempq=substr($tempq,4); 
$results=mysql_query("select * from TABLE where $tempq"); 

更好更快的搜索結果中刪除了「聲音」,你的索引列,限制搜索查詢。

'聽起來像'會返回一起聽起來的結果ex:如果用戶搜索「layk」,可能會返回「like」... 我希望這可以幫助。