大家好,我有一个相当简单的问题。
我想知道之间有什么区别
SELECT *
FROM TABLE
WHERE A = 'xxx'
AND (B = 'xxx' OR C='xxx' OR D='xxx')
这个查询
SELECT *
FROM TABLE
WHERE A = 'xxx'
AND B = 'xxx'
OR C='xxx'
OR D='xxx'
在底部查询中,它将返回2个结果,在顶部查询中,返回0个结果。
A = 'xxx' AND B = 'xxx' OR C='xxx' OR D='xxx'
相当于
(A = 'xxx' AND B = 'xxx') OR (C='xxx') OR (D='xxx')
由于操作员的优先顺序
此
SELECT * FROM TABLE
WHERE A = 'xxx' AND (B = 'xxx' OR C='xxx' OR D='xxx')
相当于这个
SELECT * FROM TABLE
WHERE A = 'xxx' AND B = 'xxx' OR
A = 'xxx' AND C = 'xxx' OR
A = 'xxx' AND D = 'xxx'
在WHERE子句中放入的逻辑遵循布尔表达式的规则。就像代数表达式一样,也有阶运算。一般来说,订单是
- 不是
- 以及
- 或