Мы используем условные операторы AND/OR для комбинирования нескольких условий с целью получения более конкретной выборки данных. Данные операторы также называют связывающими.
Оператор AND
Оператор AND позволяет нам использовать несколько условий при запросах с использованием WHERE. В результате мы получаем только те записи, которые соответствуют всем указанным условиям.
Общий вид такого запроса имеет следующий вид:
SELECT колонка1, колонка2, колонкаN
FROM имя_таблицы
WHERE [условие1] AND [условие2]... AND [условиеN];
Пример:
Предположим, что у нас есть таблица developers, которая содержит следующие данные:
+----+-------------------+------------+------------+--------+
| ID | NAME | SPECIALTY | EXPERIENCE | SALARY |
+----+-------------------+------------+------------+--------+
| 1 | Eugene Suleimanov | Java | 2 | 2000 |
| 2 | Peter Romanenko | Java | 3 | 3500 |
| 3 | Andrei Komarov | JavaScript | 2 | 2100 |
| 4 | Konstantin Geiko | C# | 2 | 2000 |
| 5 | Asya Suleimanova | UI/UX | 2 | 1800 |
+----+-------------------+------------+------------+--------+
Допустим, нам необходимо получить всех Java разработчиков с зарплатой более 3000.
Для этого мы должны составить следующий запрос:
mysql> SELECT * FROM developers WHERE SPECIALTY LIKE 'java' AND SALARY > 3000;
В результате мы получим следующее:
+----+-----------------+-----------+------------+--------+
| ID | NAME | SPECIALTY | EXPERIENCE | SALARY |
+----+-----------------+-----------+------------+--------+
| 2 | Peter Romanenko | Java | 3 | 3500 |
+----+-----------------+-----------+------------+--------+
1 row in set (0.01 sec)
Оператор OR
Мы используем оператор OR для комбинирования нескольких условий в запросах, которые используют WHERE. В результате выполнения такого запроса мы получаем результаты, которые соответствуют хотя бы одному из указанных условий.
Общий вид таких запросов выглядит следующим образом:
SELECT колонка1, колонка2, колонкаN
FROM имя_таблицы
WHERE [условие1] OR [условие2]... OR [условиеN];
Пример:
Предположим, что у нас есть таблица developers, которая содержит следующие данные:
+----+-------------------+------------+------------+--------+
| ID | NAME | SPECIALTY | EXPERIENCE | SALARY |
+----+-------------------+------------+------------+--------+
| 1 | Eugene Suleimanov | Java | 2 | 2000 |
| 2 | Peter Romanenko | Java | 3 | 3500 |
| 3 | Andrei Komarov | JavaScript | 2 | 2100 |
| 4 | Konstantin Geiko | C# | 2 | 2000 |
| 5 | Asya Suleimanova | UI/UX | 2 | 1800 |
+----+-------------------+------------+------------+--------+
Теперь предположим, что нам необходимо получить разработчиков, чей опыт более 2 лет или зарплата более 2000.
Для этого нам необходимо использовать следующую команду:
SELECT *
FROM developers
WHERE EXPERIENCE > 2 OR SALARY > 2000;
В результате мы получим следующие записи:
+----+-----------------+------------+------------+--------+
| ID | NAME | SPECIALTY | EXPERIENCE | SALARY |
+----+-----------------+------------+------------+--------+
| 2 | Peter Romanenko | Java | 3 | 3500 |
| 3 | Andrei Komarov | JavaScript | 2 | 2100 |
+----+-----------------+------------+------------+--------+
На этом мы заканчиваем изучение связывающих условных операторов AND/OR.
В следующей статье мы рассмотрим способ изменения уже существующих данных.