Grouping AND and OR conditionals in PostgreSQL

operator-precedence, parentheses, postgresql, sql

Solution

In SQL the `AND` operator takes "precedence" over `OR` operator. PostgreSQL adheres to the spec here. You can the exact precedence in PostgreSQL in the docs Lexical Structure: Operator Precedence.

So in your case, the result will be the same. However, it's much easier, and cleaner to simply use the parentheses.

Problem

I always use brackets in sql queries. But I have example: ``` DELETE FROM prog WHERE prog_start >= $1 AND prog_start < $2 OR prog_end > $1 AND prog_end <= $2 ``` Is it equal to : ``` DELETE FROM prog WHERE ( prog_start >= $1 AND prog_start < $2 ) OR ( prog_end > $1 AND prog_end <= $2 ) ``` or not ?

Original source