mysql字符串字段查询值为0


mysql字段类型为字符串时,传递查询值0 居然能查询出记录
查找相关文章:mysql

mysql字段类型为字符串时,传递查询值0 居然能查询出记录

数据库结构

CREATE TABLE IF NOT EXISTS `review_account` (
  `review_username` varchar(64) NOT NULL COMMENT '审核账号',
  `review_password` varchar(32) NOT NULL COMMENT '审核账户密码,md5加密'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='外部素材审核账户';


INSERT INTO `review_account` ( `review_username`, `review_password`) VALUES
('demo', '99a27e6f69d67b3b91f9a1305db3dc35');

查询语句

SELECT * FROM (`review_account`) WHERE `review_username` = 0

结果居然能查询出记录

避免上面的问题 可以使用 空字符 ''

SELECT * FROM (`review_account`) WHERE `review_username` = ''


这个比较跟php的比较应该是一样的问题,下面会输出1,当然判断2个值是否完全一致时可以用 === 

$string = 'demo';
$zero = 0;

if($string == $zero){
	echo 1;
}else{
	echo 0;
}

if($string === $zero){
	echo 1;
}else{
	echo 0;
}