我对MySQL并不陌生,但是今天巧合的是,我的代码中发生了一种奇怪的情况,这使我感到惊讶。有人可以解释为什么这给我相同的结果吗?
SELECT * FROM `products` WHERE id = 12
和
SELECT * FROM `products` WHERE id = '12ABC'
在这两种情况下,选择相同的记录都会得到相同的结果。我希望第二个人不会给我任何回报?我的ID字段是int(11)无符号的,并且auto_increment标志处于打开状态。
从MySQL文档:
当运算符与不同类型的操作数一起使用时,会发生类型转换以使操作数兼容
文献资料
因此,基本上'12ABC'是投射到12。
'12ABC'
12