最近在做项目的过程中发现了一个问题
数据库表 test 有个字段是 target_id int(11),这个字段可能为零
使用如下查询
select * from test where target_id = ''; select * from test where target_id = 'abcd';
这样,所有target_id = 0 的结果都会出来,为什么?
查阅资料,这是类型转化导致的,在mysql中 0 意味着 任何字符串
其实不是mysql特有了,在php中有个intval 方法将字符串转化为数字
intval("abcd");//0 intval("99a");//99 intval("a99");//0 intval("99");//99
我相信大家应该都明白了吧,哈哈