MySQL LIke语句 - 多个单词

时间:2014-09-18 04:37:54

标签: mysql

什么是正确的SQL语句,以便当我搜索两个单词时,例如文本框中的“文本字段”,它将使用LIKE语句返回其中包含“text”和“field”的所有结果?我找不到合适的条款来进行搜索。如果可能的话,我想让它变得动态。就像用户搜索5个单词一样,所有5个单词都在Like语句中。我正在努力实现这样的声明。

SELECT *
FROM TABLE
WHERE SEARCH (LIKE %searchterm1%)
  OR (LIKE %searchterm2%)
  OR (LIKE %searchterm3%) ....

2 个答案:

答案 0 :(得分:0)

试试这个。 http://dev.mysql.com/doc/refman/5.1/en/regexp.html#operator_regexp

SELECT * 
FROM TABLE
WHERE SEARCH 
REGEXP  'searchterm1|searchterm2|searchterm3'

答案 1 :(得分:0)

这是使用LIKE比较运算符

的SQL SELECT语句的示例
SELECT t.*
  FROM mytable t
 WHERE t.col LIKE CONCAT('%','cdef','%') 
   AND t.col LIKE CONCAT('%','hijk','%')
   AND t.col LIKE CONCAT('%','mnop','%')

只会返回col列中包含所有字符串'cdef''hijk''mnop'的值的行。


您特别询问了LIKE比较运算符。还有一个匹配正则表达式的REGEXP运算符。全文搜索功能可能非常适合您的使用案例。