2010-11-22 48 views
2

即時通訊使用的爲我尋找一個簡單的查詢:MySQL的LIKE =不精確搜索

SELECT * FROM table WHERE field LIKE '%term%' 

,如果我有一個字段=「公司名稱123」和我搜索公司123結果爲空

如何我能改善這個嗎?它只發現如果長期處於序列

+0

你應該在MySQL HTTP閱讀全文搜索:/ /dev.mysql.com/doc/refman/5.1/en/fulltext-search.html – 2010-11-22 14:54:06

回答

1

你需要把%公司與123之間,以便它比賽。您可能想要查看全文搜索功能。

2

用%替換空間

$newTerm = str_replace(' ', '%', $term); 
$sql = "SELECT * FROM table WHERE field LIKE '%$term%'" 

$r = mysql_qery($sql, $conn); 
+0

這裏不是問題,你應該首先閱讀這個問題(但你是r ight,問題中的代碼將不起作用,但我確信這只是一個錯字)。 **編輯:** brain_damage更正了問題 – oezi 2010-11-22 14:52:29

0

嘗試更換空間
$searchtext =str_replace(' ','%',$searchtext);

0

你可以:

  • 分割你的搜索關鍵詞爲單詞,並建立了很多與運算的查詢(或手術室如果你只是想找到的部分之一)出來的(醜,但我VE在你的任期(要走的路),看到這個有很多次)
  • 替換'「(空間)爲%(這就是通配符)