如何使用像

时间:2017-09-24 19:46:40

标签: mysql sql

多年来,当我希望我的用户搜索我的数据库中的某个字段,在那里他可以输入任何他想要的内容时,我会使用算法来破解单词并单独搜索每个单词......一团糟。

例如,如果用户在搜索框中输入" aaa bbb ccc"我不喜欢使用:

SELECT id 
  FROM table 
 WHERE description LIKE '%aaa bbb ccc%'

因为有时用户会按顺序输入内容并且上面的查询会找到。我通常做的是打破字符串并将其与PHP连接,结果变为:

SELECT id 
  FROM table 
 WHERE description LIKE '%aaa%' 
   AND description LIKE '%bbb%' 
   AND description LIKE '%ccc%'

但今天在与朋友交谈后,我想知道是否有一些本地方式可以更快地使用MY SQL?

3 个答案:

答案 0 :(得分:2)

您想要做的是full text search,现在大多数关系数据库都支持它,包括mysql。

答案 1 :(得分:0)

我认为你可以使用REGEXP。例如:

Select * from table where description REGEXP 'aaa|bbb|ccc'

答案 2 :(得分:0)

FULLTEXT搜索非常快。 INSTR或定位比REGEXP更好。但这取决于各种因素。 更多比较here

SELECT * from table where INSTR(description, 'aaa') >0 
SELECT * from table where LOCATE(description, 'aaa') >0 
相关问题