前几天,在写一个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 ) 结果就错了。
