PostgreSQL で AND 条件と OR 条件をグループ化する 質問する

PostgreSQL で AND 条件と OR 条件をグループ化する 質問する

私は常にSQLクエリで括弧を使用します。しかし、次のような例があります:

DELETE FROM prog 
WHERE prog_start >= $1 AND prog_start < $2
   OR prog_end > $1 AND prog_end <= $2

それは次と等しいですか:

DELETE FROM prog
WHERE ( prog_start >= $1 AND prog_start < $2 )
   OR ( prog_end > $1 AND prog_end <= $2 ) 

か否か ?

ベストアンサー1

SQLでは、AND演算子は演算子よりも「優先」されますOR。PostgreSQLはここでの仕様に準拠しています。PostgreSQLの正確な優先順位については、ドキュメントを参照してください。語彙構造: 演算子の優先順位

したがって、あなたの場合、結果は同じになります。ただし、括弧を使用する方がはるかに簡単できれいです。

おすすめ記事