LIKE中的'string'和LIKE'%string%'不能正常工作

sra*_*dha -3 php mysql mysqli sql-like

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

SELECT * FROM `parties` WHERE `party_name` LIKE '%DMK%' ORDER BY `id` ASC
Run Code Online (Sandbox Code Playgroud)

这里我从DB获取4行,所有行的party_name里面都包含'DMK'.

SELECT * FROM `parties` WHERE `party_name` LIKE 'DMK' ORDER BY `id` ASC
Run Code Online (Sandbox Code Playgroud)

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

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

是吗 ??

或者两者都一样?

很抱歉这类问题,Thanx

Joe*_*ras 5

如果你使用LIKE没有%通配符是相同的行为equals(=).

所以,如果你写:

 SELECT * FROM parties WHERE party_name LIKE 'DMK' ORDER BY id ASC
Run Code Online (Sandbox Code Playgroud)

是相同的:

SELECT * FROM parties WHERE party_name = 'DMK' ORDER BY id ASC
Run Code Online (Sandbox Code Playgroud)

如果你写:

SELECT * FROM `parties` WHERE `party_name` LIKE '%DMK%' ORDER BY `id` ASC
Run Code Online (Sandbox Code Playgroud)

你会发现所有party_name谁加入DMK

如果你写:

SELECT * FROM `parties` WHERE `party_name` LIKE '%DMK' ORDER BY `id` ASC
Run Code Online (Sandbox Code Playgroud)

你会发现所有party_name都以DMK结尾

如果你写:

SELECT * FROM `parties` WHERE `party_name` LIKE 'DMK%' ORDER BY `id` ASC
Run Code Online (Sandbox Code Playgroud)

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