2010-11-22 49 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在你的任期(要走的路),看到这个有很多次)
  • 替换'“(空间)为%(这就是通配符)