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 |