mysql select query给出结果,其中ID(数字)等于文本

时间:2015-05-01 08:00:21

标签: mysql sql type-conversion

我有一个表格_users,其中id字段为bigint(24)

此查询的结果:

SELECT * FROM `_users` WHERE `id`='5text'

id = 5的行。我认为没有结果,因为' 5text' 不是数字。这怎么可能?

1 个答案:

答案 0 :(得分:4)

MySQL在计算表达式时将字符串隐式转换为数字,以使操作数兼容。

来自文档:

  

如果其中一个参数是十进制值,则比较取决于另一个参数。如果另一个参数是十进制或整数值,则将参数作为十进制值进行比较,如果另一个参数是浮点值,则将参数作为浮点值进行比较。

有关详细说明和示例,请参阅Type Conversion in Expression Evaluation 文章。