来自查询的错误结果

时间:2012-12-31 18:25:18

标签: php mysql

我有这个简单的查询

SELECT * 
FROM  `book` 
WHERE  `BookID` =  '7u'
LIMIT 1

我希望结果空洞 但我看到一个结果,书ID = 7。 BookID是自动增量。 为什么查询忽略'u'字符?

3 个答案:

答案 0 :(得分:4)

因为7u不是数字,所以显然mysql忽略了u

也许您正在考虑一些使用后缀来限定数字类型的高级编程语言?在C派生语言中,7u是无符号整数,值为7.

答案 1 :(得分:0)

仅仅是因为两个原因:

  1. 可能只有一条记录。

  2. 您使用的是LIMIT 1.显示输出中只有一条记录。所以使用LIMIT 5或2。

答案 2 :(得分:0)

mysql将字符串视为7u所以当你尝试做这个东西时它会在一个字符串中转换但是mysql不是在严格模式下所以它将字符串转换为整数因为你的id是整数并且它的7u的舍入变为7这就是为什么它显示一条记录尝试没有引用7u而不是'7u'然后它给出错误