gpt4 book ai didi

mysql - 为什么 SELECT ... WHERE id = a 在值为 0 时返回结果

转载 作者:行者123 更新时间:2023-11-29 01:53:07 24 4
gpt4 key购买 nike

Table preview 
Note: 'id' is an integer column (offcourse)

+-------------+
| id | value |
+----+--------+
| 0 | abc |
| 1 | def |
+-------------+

查询:
1. 返回 abc:SELECT value FROM table WHERE id = 0
2. 返回 def:SELECT value FROM table WHERE id = 1
3. 什么都不返回:SELECT value FROM table WHERE id = 2
4. 返回 abc:SELECT value FROM table WHERE id = 'a'

问题:为什么查询 4 ​​返回 abc?它应该不会给出任何结果,对吧?

最佳答案

MySQL 在数字上下文中静默地将字符串转换为数字。

它通过转换前导数字字符(例如数字、减号和小数点)来实现。

如果没有数字,它会停止。所以:

where id = 'a'

被解释为:

where id = 0

道德:永远不要在数字常量或应该是数字的常量周围使用单引号。

关于mysql - 为什么 SELECT ... WHERE id = a 在值为 0 时返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36084405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com