| Оператор BETWEEN — це логічний оператор порівняння, який використовується в SQL для перевірки, чи належить певне значення до заданого діапазону. Його часто застосовують у частині WHERE запиту для фільтрації рядків за числовими, текстовими або часовими межами. |
| SELECT column_name FROM table_name WHERE column_name BETWEEN value1 AND value2; • column_name — стовпець, значення якого порівнюється; • value1 — нижня межа (включно); • value2 — верхня межа (включно). У MySQL BETWEEN включає обидві межі: тобто умова BETWEEN 10 AND 20 еквівалентна >= 10 AND <= 20. |
Приклад
-- Створення бази даних
CREATE DATABASE between_practice;
USE between_practice;
-- Створення таблиці
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
category VARCHAR(30),
price DECIMAL(10,2),
created_at DATE
);
-- Наповнення таблиці даними
INSERT INTO products (name, category, price, created_at)
VALUES
('iPhone 15', 'Electronics', 1200.00, '2025-01-10'),
('MacBook Air', 'Electronics', 1800.00, '2025-02-15'),
('AirPods Pro', 'Electronics', 350.00, '2025-03-05'),
('Galaxy S24', 'Electronics', 950.00, '2025-01-20'),
('Kindle Paperwhite', 'Gadgets', 180.00, '2024-12-10'),
('Sony WH-1000XM5', 'Audio', 600.00, '2025-02-02'),
('Dell XPS 13', 'Computers', 1400.00, '2025-03-20'),
('Asus ZenBook', 'Computers', 1100.00, '2025-04-12'),
('Google Pixel 8', 'Electronics', 800.00, '2025-01-25'),
('HP Pavilion', 'Computers', 700.00, '2024-11-30');
-- Використання BETWEEN для числових значень
SELECT name, price
FROM products
WHERE price BETWEEN 700 AND 1200;
-- Отримаємо всі товари, де 700 ≤ price ≤ 1200.
-- Використання BETWEEN для дат
SELECT name, created_at
FROM products
WHERE created_at BETWEEN '2025-01-01' AND '2025-02-28'
ORDER BY created_at;
-- Тут ми бачимо, що BETWEEN коректно обробляє діапазон дат.
-- Використання BETWEEN для текстових значень
SELECT name
FROM products
WHERE name BETWEEN 'G' AND 'M'
ORDER BY name;
-- Порівняння виконується за алфавітним порядком — все, що починається між літерами “G” і “M”.
-- Використання NOT BETWEEN
SELECT name, price
FROM products
WHERE price NOT BETWEEN 500 AND 1000
ORDER BY price;
-- Отримаємо все, що менше 500 або більше 1000.
Для додаткової візуалізації є відео.