我对MySQL有点了解,但还不足以知道为什么这个查询无效。
SELECT * FROM files WHERE uploader LIKE 'value';
我有一个包含上传者名称的文件数据库。然而,当我搜索上传者名称时,它会错过很多条目,即使名称完全相同。
不知道为什么会这样做。 提前谢谢。
答案 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)