像 'string' 和 LIKE '%string%' 在 mysql 中工作的方式不一样



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

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

在这里,我从DB中获得了4行,所有行的party_name都包含" DMK"。

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

在这里,我得到了一行,其中包含party_name为"DMK"

第一个查询是搜索字符串的一部分。第二个查询是搜索确切的字符串

是吗??

还是两者相同?

对不起,这类问题,Thanx

如果你使用没有%通配符的LIKE是相同的

行为等于(=)。

所以如果你写:

 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

你会发现所有party_name谁硬币 DMK

如果你写:

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

您会发现所有party_name结尾都带有 DMK

如果你写:

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

您会发现所有party_name都以 DMK 开头

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

表示包含 DMK 的所有字符串,例如('DMK1, 'ADMK', ADMKB')

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

表示所有字符串等于 DMK 为 并且等效于

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

将仅匹配值为"DMK"的列。 它本质上与party_name ='DMK'

party_name LIKE '%DMK%'

这将匹配"DMK"存在于任何地方的字符串例。abcDMK , abcDMKefg , DMKabc

party_name LIKE '%DMK'

这将匹配最后一个存在"DMK"的字符串示例:它将匹配abcDMK,但不会匹配abcDMKefg

party_name LIKE 'DMK%'

这将匹配开头存在"DMK"的字符串示例:它不会abcDMK,但它不会匹配abcDMKefg

相关内容

最新更新