SQL中字段类型是varchar,查询时用数字去查询

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; 能将第二条数据查询出来

posted @ 2021-05-07 10:00  leviH  阅读(1471)  评论(0)    收藏  举报