sql:LIKE%...%和LIKE有什么区别?

时间:2013-07-29 08:06:59

标签: mysql sql

以下两个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'

6 个答案:

答案 0 :(得分:3)

  1. 在您的第一个查询中,它显示包含代码= LIST

  2. 的所有配置列数据
  3. 在您的第二个查询中,它会显示所有配置列数据,这些数据完全符合代码= LIST

  4. LIKE支持通配符。通常它使用通配符的%或_字符。

    了解有关LIKE

    的更多信息

答案 1 :(得分:1)

%是一个通配符,用于匹配任何字符串。后者仅与code = LIST完全匹配(此处基本上与=匹配),而前者也匹配foocode = LISTbar(例如)。

要匹配单个任意字符,可以使用?作为通配符。

答案 2 :(得分:0)

“%”符号用于在模式之前和之后定义通配符(缺少字母)。它满足所有这些:

  • 'acb code = LIST 12'
  • 'efasd code = LIST sdf'
  • '无论代码=列出什么'

而查询2只满足一个字符串:

  • code = LIST

Sql Like details here

答案 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,您也会实际进行精确搜索。