like'string'和like'%string%'不一样

xzabzqsa  于 2021-06-17  发布在  Mysql
关注(0)|答案(3)|浏览(407)

我对上面的题目感到困惑。

SELECT * FROM `parties` WHERE `party_name` LIKE '%DMK%' ORDER BY `id` ASC

这里我从db得到4行,所有行的party\u名称都包含“dmk”。

SELECT * FROM `parties` WHERE `party_name` LIKE 'DMK' ORDER BY `id` ASC

在这里,我得到了确切的一行,其中包含党的名称为'dmk'
第一个查询是搜索字符串部分。第二个查询是搜索精确的字符串
它是??
或者两者都一样?
抱歉问你这个问题,塔克斯

zd287kbt

zd287kbt1#

如果你使用 LIKE 如果没有%通配符,则equals的行为相同( = ).
所以如果你写:

SELECT * FROM parties WHERE party_name LIKE 'DMK' ORDER BY id ASC

与以下内容相同:

SELECT * FROM parties WHERE party_name = 'DMK' ORDER BY id ASC

如果你写:

SELECT * FROM `parties` WHERE `party_name` LIKE '%DMK%' ORDER BY `id` ASC

你会发现所有拥有dmk的党的名字
如果你写:

SELECT * FROM `parties` WHERE `party_name` LIKE '%DMK' ORDER BY `id` ASC

你会发现所有的派对名称都以dmk结尾
如果你写:

SELECT * FROM `parties` WHERE `party_name` LIKE 'DMK%' ORDER BY `id` ASC

你会发现所有的派对名称都以dmk开头

sulc1iza

sulc1iza2#

SELECT * FROM `parties` WHERE `party_name` LIKE '%DMK%' ORDER BY `id` ASC

表示包含dmk eg的所有字符串('dmk1,'admk',admkb')

SELECT * FROM `parties` WHERE `party_name` LIKE 'DMK' ORDER BY `id` ASC

平均所有字符串等于dmk as,等于

SELECT * FROM `parties` WHERE `party_name` = 'DMK' ORDER BY `id` ASC
h43kikqp

h43kikqp3#

party_name LIKE 'DMK'

将只匹配值为“dmk”的列。它与party\u name='dmk'基本相同

party_name LIKE '%DMK%'

这将匹配“dmk”存在的字符串。mk,mkefg,dmk

party_name LIKE '%DMK'

这将匹配上一个示例中存在“dmk”的字符串:它将匹配dmk,但不匹配dmkefg

party_name LIKE 'DMK%'

这将匹配开头示例中存在“dmk”的字符串:它不会匹配mk,但不会匹配mkefg

相关问题