私は常に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の正確な優先順位については、ドキュメントを参照してください。語彙構造: 演算子の優先順位。
したがって、あなたの場合、結果は同じになります。ただし、括弧を使用する方がはるかに簡単できれいです。