0

如果我有一个带有字符串列的表,并尝试从该列中选择匹配0,则返回所有行。为什么 MySQL 会返回所有行,而不是只返回 0 作为字符串的行?

SELECT * FROM MyTable WHERE MyStringColumn = 0;

看看这个SQLFiddle。我希望看到没有返回任何行,但都是。为什么会这样?

4

2 回答 2

4

比较指令

WHERE info = 0

转换info为整数。除非它以一些数字字符串开头,否则它的整数值为零。因此,除了 '123abc' 之类的内容之外,您的所有字符串都将匹配。

于 2013-06-30T17:36:24.327 回答
0

只需使用 WHERE MyStringColumn = '0'

于 2013-06-30T17:40:33.580 回答