在PostgreSQL中对AND和OR条件进行分组

Bdf*_*dfy 9 sql postgresql operator-precedence parentheses

我总是在SQL查询中使用括号.但我有一个例子:

DELETE FROM prog 
WHERE prog_start >= $1 AND prog_start < $2
   OR prog_end > $1 AND prog_end <= $2
Run Code Online (Sandbox Code Playgroud)

它等于:

DELETE FROM prog
WHERE ( prog_start >= $1 AND prog_start < $2 )
   OR ( prog_end > $1 AND prog_end <= $2 ) 
Run Code Online (Sandbox Code Playgroud)

或不 ?

Rap*_*aus 11

在SQL中,AND运算符优先于OR运算符.PostgreSQL遵循这里的规范.您可以在文档词汇结构:运算符优先级中使用PostgreSQL中的确切优先.

所以在你的情况下,结果将是相同的.但是,简单地使用括号更简单,更简洁.