关于SQL语句where后有限制条件却取出条件外数据问题的分析

前几天,在写一个SQL语句的时候,where后面明明有限制条件,却每次都将表中其它数据也取出来了。测试了半天还是不行。 这到底是什么原因呢? 最后才发现 ,原来有一个字段我用的是varchar ,里面的值 又是 也逗号分隔的,如 1,2,3,4 但 SQL语句中却用的是这样的 receive_id = 1 ,结果就会出现上面的问题,原来是MYSQL 会自动将1,2,3,4自动转换成int 型,这样一转,就转成 1了,所以结果中老有 1,2,3,4 这样的记录。改成 is_read = ’1′ ,一切终于ok 了。

总结: int 型的 可以写成 字符型 ,如is_del  = ’1′  (is_del 为tinyint型),但字符型的不能写成 int 型 ,如 is_read = 1 ,(is_read 为varchar ) 结果就错了。


Leave Your Comment

Your email will not be published or shared. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">

*
请输入图片中的字符以验证你并非垃圾机器人. 点击图片收听验证码的语音版.
点击这里收听此验证码的语音版本