MySQL-为什么这样的查询有效?

时间:2018-10-15 10:14:20

标签: mysql

所以,我有一个包含2列的表格

[Col_1并输入int(11)自动增量]
[Col_2并输入int(11)NULL]

假设在该表中有3行。
1 7
2 7
3 6

问题是为什么该语句(查询)正确,为什么返回这样的结果?

SELECT * from table WHERE Col_2 = '7%fdh(ds;ds)dsa'

结果:
1 7
2 7

1 个答案:

答案 0 :(得分:1)

这是当您比较不同类型时MySQL使用的隐式类型转换。

请参见手册中的documentation about type conversion

报价:

  

当运算符与不同类型的操作数一起使用时,请键入   进行转换以使操作数兼容。一些转换   隐式发生。例如,MySQL自动将字符串转换为   数字,反之亦然。