为什么会出现以下查询:
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
复制相似问题