BETWEEN — диапазоны чисел и дат
Зачем это нужно
Часто нужно найти строки в диапазоне: товары от 500 до 2000 ₽, поступления
в январе 2024, остатки от 5 до 20 штук. Можно написать WHERE price >= 500 AND price <= 2000,
но BETWEEN делает то же самое короче и читабельнее.
Аналогия с Excel
В Excel «Числовые фильтры» → «Между». Вводите минимум и максимум — Excel показывает
строки в этом диапазоне. BETWEEN — это то же самое в SQL.
Синтаксис
WHERE колонка BETWEEN нижняя_граница AND верхняя_граница
Важно: обе границы включаются в результат (>= и <=).
Разбор примеров
-- Товары от 500 до 2000 ₽ включительно
SELECT name, price
FROM products
WHERE price BETWEEN 500 AND 2000
ORDER BY price ASC, name;
-- То же самое через >= и <=
SELECT name, price
FROM products
WHERE price >= 500 AND price <= 2000
ORDER BY price ASC, name;
Оба запроса дадут одинаковый результат. BETWEEN — просто удобная запись.
BETWEEN с датами
-- Товары, поступившие в январе 2024
SELECT name, created_at
FROM products
WHERE created_at BETWEEN '2024-01-01' AND '2024-01-31'
ORDER BY created_at, name;
Формат дат: 'YYYY-MM-DD'. Обе даты включаются.
NOT BETWEEN
-- Товары вне диапазона 1000–10000 ₽ (дешевле 1000 или дороже 10000)
SELECT name, price
FROM products
WHERE price NOT BETWEEN 1000 AND 10000
ORDER BY price ASC;
Частые ошибки
Думают, что границы не включаются — BETWEEN 500 AND 2000 включает и 500, и 2000.
Если нужно исключить границы — используйте > 500 AND < 2000.
Перепутали порядок границ — BETWEEN 2000 AND 500 вернёт пустой результат.
Нижняя граница всегда первая, верхняя — вторая.
Используют BETWEEN для текста — технически работает (алфавитный диапазон),
но это редко то, что нужно. Для текста лучше IN или LIKE.
Запомни
BETWEEN a AND b — то же что >= a AND <= b. Обе границы включаются.
Нижняя граница всегда первой.
Мини-практика
Запиши условие через BETWEEN:
- Цена от 1000 до 3000 ₽
- Дата поступления в марте 2024
- Остаток вне диапазона 10–50 штук
Ответы
price BETWEEN 1000 AND 3000created_at BETWEEN '2024-03-01' AND '2024-03-31'stock NOT BETWEEN 10 AND 50
Прочитайте урок до конца — прогресс засчитается автоматически