假设我有一个select语句:
SELECT * FROM TABLE WHERE a=a or b=b and c=c
条件的评估如下:
1->a=a
2->b=b
3->b=b and c=c
4->a=a or b=b and c=c
我有些困惑。
答案 0 :(得分:5)
SELECT * FROM TABLE
WHERE a=a or (b=b and c=c)
查询返回
的所有记录a=a
或强>
b=b AND c=c
答案 1 :(得分:-1)
首先它评估AND然后是OR。所以,如果a = a,无论其余是什么。
这意味着AND具有更高的优先级。实际计算a=a or b=b and c=c
条件时,检查第一部分(a = a)是否正确,无论休息的价值是多少都是如此
true或(任何值)= true
你不能在你需要的地方添加括号吗?