val*_*rio 5 mysql sql type-conversion
我有一个表_users有一个字段id作为bigint(24).
此查询的结果:
SELECT * FROM `_users` WHERE `id`='5text'
Run Code Online (Sandbox Code Playgroud)
是的行id = 5.我希望没有结果,因为'5text'不是一个数字.这怎么可能?
MySQL 在计算表达式时会隐式将字符串转换为数字以使操作数兼容。
从文档中:
如果其中一个参数是十进制值,则比较取决于另一个参数。如果另一个参数是十进制或整数值,则参数将作为十进制值进行比较;如果另一个参数是浮点值,则参数将作为浮点值进行比较。
有关详细说明和示例,请参阅表达式求值中的类型转换 一文。
| 归档时间: |
|
| 查看次数: |
261 次 |
| 最近记录: |