PostgreSQL And – Or
AND returns query rows if both conditions are true.
OR returns query rows if at least one of the conditions is true.
And – Or syntax
SELECT * FROM table_name WHERE condition AND condition; SELECT * FROM table_name WHERE condition OR condition; SELECT * FROM table_name WHERE condition AND condition OR condition;
And – Or example
Goods table
id | good_type | name | description | price | insert_date |
---|---|---|---|---|---|
1 | A | Car_1 | Car 1 description | 100 | 2018-07-21 08:45:57.311809 |
2 | A | Car_2 | Car 2 description | 200 | 2018-07-21 08:45:57.311809 |
3 | A | Car_3 | Car 3 description | 100 | 2018-07-21 08:45:57.311809 |
4 | B | Boat_4 | Boat 4 description | 500 | 2018-07-21 08:45:57.311809 |
5 | B | Boat_5 | Boat 5 description | 300 | 2018-07-21 08:45:57.311809 |
6 | C | Train_1 | Train 123 description | 800 | 2018-07-21 08:45:57.311809 |
SELECT * FROM goods WHERE good_type = 'A' and price=100;
Result
id | good_type | name | description | price | insert_date |
---|---|---|---|---|---|
1 | A | Car_1 | Car 1 description | 100 | 2018-07-21 08:45:57.311809 |
3 | A | Car_3 | Car 3 description | 100 | 2018-07-21 08:45:57.311809 |
SELECT * FROM goods WHERE good_type = 'C' or price=300;
Result
id | good_type | name | description | price | insert_date |
---|---|---|---|---|---|
5 | B | Boat_5 | Boat 5 description | 300 | 2018-07-21 08:45:57.311809 |
6 | C | Train_1 | Train 123 description | 800 | 2018-07-21 08:45:57.311809 |