3

我有这个简单的查询

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

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

4

3 回答 3

4

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

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

于 2012-12-31T18:27:16.183 回答
0

仅仅因为两个原因:

  1. 可能只有一个记录。

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

于 2013-01-01T13:00:53.293 回答
0

mysql 将字符串视为 7u,因此当您尝试执行此操作时,它会在字符串中进行转换,但 mysql 未处于严格模式,因此它将字符串转换为整数,因为您的 id 是整数,并且其 7u 的舍入变为 7,这就是它显示的原因一条记录尝试不带引号 7u 而不是 '7u' 然后它给出错误

于 2013-01-01T13:34:38.583 回答