В сегодняшнем уроке мы рассмотрим на практике то, как использовать условие WHERE в операторе SELECT для фильтрации строк из набора результатов в MySQL.
Условие WHERE
позволяет задать условие поиска для строк, которые возвращаются в запросе. Ниже показан синтаксис условия WHERE
:
SELECT select_query FROM table_name WHERE condition;
Условие condition
– это комбинация одного или нескольких утверждений, которые используют логический оператор AND
, OR
и NOT
.
В MySQL утверждение (предикат) – это логическое выражение, которое оценивается как TRUE
, FALSE
или UNKNOWN
.
Любая строка из table_name
, которая приводит к тому, что condition
оценивается как TRUE
, будет включена в окончательный набор результатов.
Помимо оператора SELECT, вы можете использовать условие WHERE
в операторе UPDATE
или DELETE
, чтобы указать, какие строки нужно обновить или удалить.
В операторе SELECT
условие WHERE
оценивается после условия FROM
и перед условием SELECT
.
В следующем запросе используется условие WHERE
для поиска всех сотрудников, названия должностей которых являются Менеджер:
SELECT lastname, firstname, dolzhnost FROM sotrudniki WHERE dolzhnost = 'Менеджер';
В этом примере инструкция SELECT
проверяет все строки таблицы сотрудников и выбирает только строку, значение которой в столбце dolzhnost
равно Менеджер.
В следующем примере используется условие WHERE
для поиска сотрудников, названия должностей которых являются Менеджер, а служебные коды равны 1:
SELECT lastname, firstname, dolzhnost, officeKod FROM sotrudniki WHERE dolzhnost = 'Менеджер' AND officeKod = 1;
В этом примере выражение в предложении WHERE
использует оператор AND
для объединения двух условий:
dolzhnost = 'Менеджер' AND officeKod = 1;
Оператор AND
оценивается как ИСТИНА (TRUE
), только если оба выражения имеют значение TRUE
. Поэтому запрос возвращает строки, значения которых в столбце dolzhnost
равны Менеджер, а officeKod
равен 1.
Этот запрос находит сотрудников, название должности которых является Менеджер, или сотрудников, которые имеют офисный код 1:
SELECT lastName, firstName, dolzhnost, officeKod FROM sotrudniki WHERE dolzhnost = 'Менеджер' OR officeKod = 1;
Оператор OR
оценивается как ИСТИНА
, только если одно из выражений имеет значение TRUE
:
dolzhnost = 'Менеджер' OR officeKod = 1
Таким образом, запрос возвращает любого сотрудника, у которого есть должность Менеджер или офисный код 1.
Оператор BETWEEN
возвращает TRUE
, если значение находится в диапазоне значений:
expression BETWEEN low AND high
Следующий запрос находит сотрудников, которые находятся в офисах с офисным кодом от 1 до 3:
SELECT firstName, lastName, officeKod FROM sotrudniki WHERE officeKod BETWEEN 1 AND 3 ORDER BY officeKod;
Оператор LIKE
оценивается как ИСТИНА, если значение соответствует указанному шаблону. Чтобы сформировать шаблон, вы используете %
и _
подстановочные знаки. Подстановочный знак %
соответствует любой строке, состоящей из нуля или более символов, а подстановочный знак _
соответствует любому отдельному символу.
Этот запрос находит сотрудников, чьи фамилии заканчиваются строкой «ов»:
SELECT firstName, lastName FROM sotrudniki WHERE lastName LIKE '%ов';
Оператор IN
возвращает TRUE
, если значение соответствует любому значению в списке.
value IN (value1, value2, ...)
В следующем примере используется условие WHERE
с оператором IN
для поиска сотрудников, которые находятся в офисе с офисными кодами 1, 2 или 3.
SELECT firstName, lastName, officeKod FROM sotrudniki WHERE officeKod IN (1, 2, 3);
Чтобы проверить, является ли значение NULL
или нет, вы используете оператор IS NULL
, а не оператор равенства (=). Оператор IS NULL
возвращает TRUE
, если значение равно NULL
.
value IS NULL
В мире баз данных NULL
– это маркер, который указывает, что часть информации отсутствует или неизвестна. Это не эквивалентно числу 0 или пустой строке.
Этот оператор использует условие WHERE
с оператором IS NULL
, чтобы получить строку, значение которой в столбце officeKod
равно NULL
:
SELECT lastName, firstName, officeKod FROM sotrudniki WHERE officeKod IS NULL;
Из сегодняшнего урока вы узнали, как на практике использовать условие WHERE
в MySQL для фильтрации строк результатов по нужным критериям.
Чтобы избегать ошибок, нужно набираться опыта; чтобы набираться опыта, надо делать ошибки Лоуренс Питер
Краткое определение Черного SEO Черное СЕО (или Черная оптимизация) — это любая практика, целью которой…
Получение водительских прав категории C открывает двери к профессиональной деятельности, связанной с управлением грузовыми автомобилями.…
Выход айфонов 15 и 16 поколения — не повод забыть об устройствах 14-го, которые продолжают…
Очень неприятно получается, когда вы приложили много усилий, труда и сил, чтобы создать картинку, а…