2

似乎无法使用 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%'

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

4

1 回答 1

7

手册

彼此相邻放置的带引号的字符串连接到单个字符串。以下几行是等效的:

'a string'

'a' ' ' 'string'

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

于 2012-06-21T13:00:06.200 回答