每个人,在MySQL 5.7上执行选择查询时,都会发现奇怪的性能。
我的表(MySQL 5.7)
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL DEFAULT '',
`password` char(32) NOT NULL DEFAULT '',
`age` int(11) DEFAULT NULL,
`phone` varchar(32) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
我的SQL查询:
SELECT * FROM `user` WHERE name=0
结果
+------+--------+--------------------+-------+---------+
| id | name | payment_password | age | phone |
|------|--------|--------------------|-------|---------|
| 1 | test1 | | 22 | 12345 |
| 2 | test2 | | 15 | 12345 |
| 3 | test3 | | 11 | 12345 |
| 4 | test4 | | 11 | 12345 |
+------+--------+--------------------+-------+---------+
有人可以解释为什么会这样吗?预先感谢!
答案 0 :(得分:3)
就MySQL而言,转换为整数的字符串为0。请尝试以下操作:
SELECT CAST('test1' AS UNSIGNED), 'test1' = 0
输出:
0 1
第二个输出值1
表示MySQL认为'test'=0
答案 1 :(得分:0)