最近在做项目的过程中发现了一个问题数据库表 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我相信大家应该都明白了吧,哈哈