简单的MySQL查询没有选择所有数据?

时间:2012-03-12 01:33:30

标签: mysql

我对MySQL有点了解,但还不足以知道为什么这个查询无效。

SELECT * FROM files WHERE uploader LIKE 'value';

我有一个包含上传者名称的文件数据库。然而,当我搜索上传者名称时,它会错过很多条目,即使名称完全相同。

不知道为什么会这样做。 提前谢谢。

4 个答案:

答案 0 :(得分:7)

桑尼,你需要that there LIKE clause中的一些通配符。

SELECT * FROM files WHERE uploader LIKE '%value%';

答案 1 :(得分:0)

当你使用时,你通常想要包含某种通配符:

SELECT * FROM files WHERE uploader LIKE '%value%';

对于未定义的字符数,请使用%仅使用_一个额外字符。

一些例子:

'%value%'将匹配:

somevaluesome
somevalue
valuesome
value

另一个样本:
'_value_'将匹配:

avaluea

但不是

value
avalue
valuea

您可以在此处找到更多通配符:
http://dev.mysql.com/doc/refman/5.1/en/string-comparison-functions.html

答案 2 :(得分:0)

如果您要搜索相同的上传者名称,例如名为Jason的上传者,请使用等于比较运算符。

SELECT * FROM files WHERE uploader = 'Jason';

如果您想匹配ssJasonsss,Jason等,请使用:

SELECT * FROM files WHERE uploader LIKE '%Jason%';

答案 3 :(得分:0)

尝试以下:

SELECT * FROM files WHERE uploader LIKE '%value%'

详细了解Pattern Matching