如果我有一个包含字符串列的表,并尝试从匹配0
的列中进行选择,则返回所有行。为什么MySQL会返回所有行,而不仅仅是返回0作为字符串的行?
SELECT * FROM MyTable WHERE MyStringColumn = 0;
看看这个SQLFiddle。我希望看到没有返回任何行,但都是。为什么会这样?
答案 0 :(得分:3)
比较命令
WHERE info = 0
将info
转换为整数。除非它以一些数字字符串开头,否则其整数值为零。所以除了'123abc'之外的所有字符串都匹配。
答案 1 :(得分:0)
只需使用 WHERE MyStringColumn ='0'