user表中有个type字段,数据类型为varchar,表里有条数据type字段为'7D',但在写sql的时候误将type字段当成integer。
select * from user where type = 7;
这时候会将type为‘7D’的数据查询出来。经过查阅资料,用integer去查询的时候,会将varchar类型的数据截取开头的数字部分来与之比较,所以‘7D’能被查询出来,当字符串开头没有数字时,会被当成0处理,例如第二条数据的type字段为'aaa',那么select * from user where type = 0; 能将第二条数据查询出来