以下两个sql语句之间有什么区别:
1
SELECT pid, config, constants
FROM sys_template
WHERE config LIKE '%code = LIST%'
2
SELECT pid, config, constants
FROM sys_template
WHERE config LIKE 'code = LIST'
答案 0 :(得分:3)
在您的第一个查询中,它显示包含代码= LIST
在您的第二个查询中,它会显示所有配置列数据,这些数据完全符合代码= LIST
LIKE支持通配符。通常它使用通配符的%或_字符。
了解有关LIKE
的更多信息答案 1 :(得分:1)
%
是一个通配符,用于匹配任何字符串。后者仅与code = LIST
完全匹配(此处基本上与=
匹配),而前者也匹配foocode = LISTbar
(例如)。
要匹配单个任意字符,可以使用?
作为通配符。
答案 2 :(得分:0)
“%”符号用于在模式之前和之后定义通配符(缺少字母)。它满足所有这些:
而查询2只满足一个字符串:
答案 3 :(得分:0)
LIKE条件下的运算符%
表示无论何种符号。
对于您的示例1,结果将仅包含配置为'code = LIST'的项(大写和小写不在mysql中),在第二个示例中,结果将包含每个配置为'code =列表'在其中。
答案 4 :(得分:0)
首先会在config
内找到code = LIST
所在的行,例如:
code = LIST
aaacode = LISTaaaa
code = LISTaaaa
aaacode = LIST
第二只会找到
code = LIST
答案 5 :(得分:0)
使用LIKE
运算符时,%
表示它应匹配该点之前或之后出现的任何文本。
例如,'%code'
将返回以下任意内容:
code
acode
abccode
abcdefcode
'code%'
将返回以下任何内容:
code
codea
codeabc
codeabcdef
因此,'%code%'
将返回以下任何内容:
code
acodea
abccodeabc
abcdefcodeabcdef
如果您使用'code'
而不使用%
,那么即使您使用LIKE
,您也会实际进行精确搜索。