为什么会出现以下查询:
SELECT * FROM myTable WHERE id=1=0返回myTable中除具有id=1的行以外的所有行
myTable内容:
+----+-------+
| id | value |
+----+-------+
| 1 | dog |
| 2 | cat |
| 3 | parrot|
+----+-------+现在运行:SELECT * FROM myTable WHERE id=1=0
输出:
+----+-------+
| id | value |
+----+-------+
| 2 | cat |
| 3 | parrot|
+----+-------+发布于 2019-01-23 20:27:45
原因是逻辑应该被评估为:
WHERE (id = 1) = 0这相当于:
WHERE (id = 1) "is false"或者:
WHERE id <> 1尝试运行以下示例:
select 1=1=0, 1=2=3, 1=1=0发布于 2019-01-23 20:27:08
默认运算符优先级的工作方式如下:
WHERE (ID=1)=0在id=1的情况下,下列哪项结果为假
https://stackoverflow.com/questions/54327222
复制相似问题