Фильтрация данных (WHERE)¶
Основы фильтрации¶
Оператор WHERE позволяет фильтровать строки, возвращаемые запросом, на основе указанного условия.
Синтаксис¶
Операторы сравнения¶
| Оператор | Описание | Пример |
|---|---|---|
= |
Равно | age = 25 |
<> или != |
Не равно | status != 'inactive' |
> |
Больше | price > 100 |
< |
Меньше | age < 18 |
>= |
Больше или равно | salary >= 50000 |
<= |
Меньше или равно | quantity <= 10 |
Логические операторы¶
AND — логическое И¶
OR — логическое ИЛИ¶
NOT — логическое НЕ¶
Специальные операторы¶
BETWEEN — диапазон значений¶
IN — список значений¶
LIKE — поиск по шаблону¶
| Шаблон | Описание | Пример |
|---|---|---|
% |
Любое количество символов | 'Иван%' |
_ |
Один любой символ | 'А_ексей' |
-- Имена, начинающиеся на "Иван"
SELECT * FROM users WHERE first_name LIKE 'Иван%';
-- Имена, заканчивающиеся на "ов"
SELECT * FROM users WHERE last_name LIKE '%ов';
IS NULL / IS NOT NULL¶
-- Пользователи без email
SELECT * FROM users WHERE email IS NULL;
-- Пользователи с заполненным email
SELECT * FROM users WHERE email IS NOT NULL;
Внимание
Для проверки на NULL используйте IS NULL или IS NOT NULL, а не = NULL.
Практические примеры¶
Фильтрация заказов¶
SELECT * FROM orders
WHERE
order_date >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
AND total_amount > 1000
AND status = 'completed';
Частые ошибки¶
❌ Неправильно:
✅ Правильно:
Что дальше?¶
- Сортировка — упорядочивание результатов
- JOIN операции — соединение таблиц
Совет: Используйте скобки для группировки сложных условий — это улучшает читаемость и предотвращает ошибки.