对于多个单词,未使用LIKE运算符的MySQL用法

时间:2012-06-21 12:56:32

标签: mysql sql syntax

似乎无法使用LIKE运算符查找有关特定SQL形式的文档。使用MySQL,使用LIKE运算符对多个单词的典型查询可能如下所示:

SELECT * from table AS t WHERE t.col LIKE '%word1%' AND t.col LIKE '%word2%'

虽然以下语句也有效,但返回的行将根据查询中单词的顺序而有所不同。例如:

SELECT * from table WHERE col LIKE '%word1%' '%word2%'

在没有AND布尔值的情况下执行,但结果与:

不同
SELECT * from table WHERE col LIKE '%word2%' '%word1%'

我的问题是,在使用这种查询形式而不是使用boolean时实际发生了什么?

1 个答案:

答案 0 :(得分:7)

来自the manual

  

彼此相邻的引号字符串连接成一个字符串   串。以下几行是等效的:

     

'a string'

     

'a' ' ' 'string'

所以,正在发生的事情是'%word1%' '%word2%'被解释为'%word1 %% word2%'