Условный оператор WHERE

Ситуация, когда требуется сделать выборку по определённому условию, встречается очень часто. Для этого в операторе SELECT существует оператор WHERE, после которого следуют условия для ограничения строк. Если запись удовлетворяет этому условию, то попадает в результат, иначе отбрасывается.

Общая структура запроса с оператором WHERE

MySQL
SELECT [DISTINCT] поля_таблиц FROM наименование_таблицы
WHERE условия_на_ограничения_строк
[логический_оператор другое_условия_на_ограничения_строк];

Например, запрос с использованием оператора WHERE может выглядеть следующим образом:

MySQL
SELECT * FROM Student
WHERE first_name = "Grigorij" AND YEAR(birthday) > 2000;
idfirst_namemiddle_namelast_namebirthdayaddress
33GrigorijGennadevichKapustin2001-12-13T00:00:00.000Zul. Pervomajskaya, d. 45, kv. 6
65GrigorijKirillovichKolobov2003-07-17T00:00:00.000Zul. CHernova, d. 9, kv. 34

В нем используются:

  • 2 оператора сравнения
    first_name = "Grigorij" и YEAR(birthday) > 2000;
  • 1 логический оператор AND

Как результат, в выборке мы получаем данные студентов, которые имеют имя «Grigorij» и в тоже время чей год рождения больше 2000.

Операторы сравнения

Операторы сравнения служат для сравнения 2 выражений, результатом которого может являться:

  • true (что эквивалентно 1)
  • false (что эквивалентно 0)
  • NULL

Результат сравнения с NULL является NULL. Исключением является оператор эквивалентности.

ОператорОписание
=Оператор равенство
<=>Оператор равенство
<> или !=Оператор неравенство
<Оператор меньше
<=Оператор меньше или равно
>Оператор больше
>=Оператор больше или равно

Логические операторы

Логические операторы необходимы для связывания операторов сравнения.

ОператорОписание
NOTМеняет значение оператора сравнения на противоположный
ORВозвращает общее значение выражения истинно, если хотя бы одно из них истинно
ANDВозвращает общее значение выражения истинно, если они оба истинны
XORВозвращает общее значение выражения истинно, если один и только один аргумент является истинным

Давайте для примера выведем все полёты, которые были совершены на самолёте «Boeing», но, при этом, вылет был не из Лондона:

MySQL
SELECT * FROM Trip
WHERE plane = 'Boeing' AND NOT town_from = 'London';