| Оператор IN в MySQL використовується для перевірки, чи міститься значення у списку значень. Це спрощує написання SQL-запитів, коли необхідно перевірити кілька значень одночасно. |
| Синтаксис SELECT * FROM table_name WHERE column_name IN (value1, value2, value3, …); • column_name — це колонка таблиці, значення якої потрібно порівняти з переліком. • (value1, value2, value3, …) — список значень, які ми хочемо порівняти з полем column_name. |
Перевірка на кілька конкретних значень
| Уявімо, що у нас є таблиця employees, і вам потрібно знайти всіх працівників, чия посада — “Manager”, “Developer” або “Designer”. Запит виглядатиме так: |
| SELECT * FROM employees WHERE position IN (‘Manager’, ‘Developer’, ‘Designer’); |
| Цей запит поверне всі записи з таблиці employees, де значення в колонці position є одним із заданих (в даному випадку, “Manager”, “Developer” або “Designer”). |
Перевірка на числові значення
| Якщо нам потрібно перевірити кілька числових значень у колонці, можна використовувати оператор IN наступним чином: |
| SELECT * FROM orders WHERE order_id IN (1, 3, 5, 7); |
| Цей запит вибере всі замовлення, у яких значення order_id дорівнює 1, 3, 5 або 7. |
Перевірка на дати
| Оператор IN можна також використовувати для перевірки на дату або час. Приклад: |
| SELECT * FROM sales WHERE sale_date IN (‘2025-01-01’, ‘2025-01-15’, ‘2025-02-01’); |
| Тут ми вибираємо всі продажі, які відбулися 1 січня 2025 року, 15 січня 2025 року або 1 лютого 2025 року. |
Переваги оператора IN
| Простота синтаксису: Замінює кілька умов OR в одному запиті, що робить його більш читабельним. |
| Зручність: Дозволяє легко працювати з кількома значеннями без повторення умови. |
| Гнучкість: Можна використовувати для різних типів даних — чисел, рядків, дат тощо. |
Приклад
-- Створимо базу даних
CREATE DATABASE in_operator_practice;
USE in_operator_practice;
-- Створимо таблицю employees
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
position VARCHAR(50),
city VARCHAR(50),
salary DECIMAL(10,2)
);
-- Заповнимо таблицю даними
INSERT INTO employees (name, position, city, salary) VALUES
('Іван Шевчук', 'Developer', 'Київ', 45000.00),
('Марія Іваненко', 'Manager', 'Львів', 60000.00),
('Олег Коваленко', 'Designer', 'Одеса', 40000.00),
('Анна Шевченко', 'Developer', 'Київ', 47000.00),
('Дмитро Мельник', 'HR', 'Харків', 35000.00),
('Оксана Литвин', 'QA Engineer', 'Львів', 38000.00),
('Сергій Павленко', 'Manager', 'Київ', 62000.00),
('Катерина Романюк', 'Designer', 'Дніпро', 41000.00);
-- Знайти працівників певних посад
-- Хочемо отримати всіх Developer, Designer і QA Engineer.
SELECT name, position, salary
FROM employees
WHERE position IN ('Developer', 'Designer', 'QA Engineer');
-- Результат: будуть вибрані всі працівники, чия посада відповідає одному з цих трьох варіантів.
-- Знайти працівників із певних міст
-- Потрібно знайти всіх, хто працює у Києві або Львові.
SELECT name, city, position
FROM employees
WHERE city IN ('Київ', 'Львів');
-- Результат: поверне працівників із Києва та Львова.
-- Використання IN із числовими значеннями
-- Хочемо переглянути інформацію про конкретних працівників за їхніми id:
SELECT *
FROM employees
WHERE id IN (3, 5, 7);
-- Результат: покаже 3-го, 5-го і 7-го працівників у таблиці.
Для додаткової візуалізації є відео.