LIKE 'string' 和 LIKE '%string%' in mysql 不一样
LIKE 'string' and LIKE '%string%' in mysql not working as same
我对上面的标题感到困惑。
SELECT * FROM `parties` WHERE `party_name` LIKE '%DMK%' ORDER BY `id` ASC
这里我从数据库中获取了 4 行,所有行的 party_name 都包含 'DMK'。
SELECT * FROM `parties` WHERE `party_name` LIKE 'DMK' ORDER BY `id` ASC
这里我得到了包含 party_name 作为 'DMK'
的确切一行
第一个查询是搜索字符串的一部分。
第二个查询正在搜索确切的字符串
是吗??
或者两者相同?
抱歉提出此类问题,
谢谢
如果您使用不带 % 通配符的 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
你会发现所有 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
我对上面的标题感到困惑。
SELECT * FROM `parties` WHERE `party_name` LIKE '%DMK%' ORDER BY `id` ASC
这里我从数据库中获取了 4 行,所有行的 party_name 都包含 'DMK'。
SELECT * FROM `parties` WHERE `party_name` LIKE 'DMK' ORDER BY `id` ASC
这里我得到了包含 party_name 作为 'DMK'
的确切一行第一个查询是搜索字符串的一部分。 第二个查询正在搜索确切的字符串
是吗??
或者两者相同?
抱歉提出此类问题, 谢谢
如果您使用不带 % 通配符的 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
你会发现所有 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