在MySql中,当在where条件中进行比较时,如果两个操作数的类型不匹配,Mysql会尝试及逆行隐式类型转换,使两个操作数可以进行比较,这是基于Mysql的类型转换规则.
如果column是varchar类型,但是在in语句中使用了一个整数,Mysql会尝试将varchar类型转换为整数类型来进行比较.
具体的转换规则如下:当字符串被转为数字时,Mysql会从字符串的左边开始,尽可能多的查找可以构成有效数字的字符(包括正负号,数字,小数点,科学计数法中的e或者E),当遇到第一个无法识别为数字的字符时,转换就会停止,剩下部分被舍弃,例如,字符串'123abc'会被转换为123,而字符串'abc123'会被转换为数字0,因为它的最左边没有数字.