当有许多匹配时,SQL'LIKE'不返回记录

时间:2016-03-21 09:25:05

标签: php mysql sql search

我的查询:

SELECT * FROM CIUploads WHERE UploadTitle LIKE 'example'

CIUploads表的快照: enter image description here

错误,我期待20多场比赛

  

MySQL返回一个空结果集(即零行)。 (查询了   0.0002秒)

4 个答案:

答案 0 :(得分:3)

要在UploadTitle中获取包含示例一词的所有记录,请将该字词包含在通配符%中,例如

SELECT * FROM CIUploads WHERE UploadTitle LIKE '%example%'

添加LIKE 'example'(不带通配符)将仅返回包含UploadTitleexample的记录。在您的表格中还有其他单词以及example(例如:视频示例),并且没有包含与example完全相同的值的记录。所以它将返回空记录。

有关详细信息,请参阅此link

答案 1 :(得分:1)

查找以下记录:
img开头 a => 'a%'结束 包含 b => '%b'

答案 2 :(得分:1)

关于LIKE的一些基础知识 -

%通配符 - 表示任何可以替换%(可以是句子)

WHERE UploadTitle like '%example' --The string ends with example
WHERE UploadTitle like 'example%' --The string starts with example
WHERE UploadTitle like '%example%' --The string contains example
WHERE UploadTitle like 'example' --The string equals to example

_通配符 - 表示任何字母可以替换_(只有1个字母)

WHERE UploadTitle like '__example' --the string has 2 letters before example
WHERE UploadTitle like 'example__' --the string has 2 letters after example
WHERE UploadTitle like '__example__' --the string has 2 letters before  and after example

如果没有提到通配符,它​​将被识别为字符串并将搜索完全匹配,所以基本上它等于=

WHERE UploadTitle like 'example'

同样:

WHERE UploadTitle = 'example'

答案 3 :(得分:0)

我假设您期望结果集中的给定行(UploadId 57,58 ...)。 因此,您应该检查是否使用区分大小写的排序规则。

如果您使用区分大小写的排序规则,则正确的查询为

SELECT * FROM CIUploads WHERE UploadTitle LIKE '%Example%'

(大写' E'在'示例'开头)