繁体   English   中英

来自查询的错误结果

[英]Wrong result from query

我有这个简单的查询

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

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

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

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

仅仅因为两个原因:

  1. 可能只有一条记录。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM