最近在做项目的过程中发现了一个问题
数据库表 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
我相信大家应该都明白了吧,哈哈
原文地址:In MySQL, a zero number equals any string
标签:mysql zero string vs