Команда IN выбирает записи из базы данных по определенным значениям поля.
К примеру, можно выбрать записи, у которых id имеет значение 1, 3, 7, 14, 28. Это будет выглядеть так: WHERE id IN (1, 3, 7, 14, 28).
Или же все записи, у которых поле name имеет значение 'Дима', 'Вася' или 'Коля'. Это будет выглядеть так: WHERE id IN ('Дима', 'Вася', 'Коля').
В принципе, для таких вещей можно пользоваться и командой OR, тогда первый пример будет выглядеть так: WHERE id=1 OR id=3 OR id=7 OR id=14 OR id=28. Вариант с IN все-таки выглядит проще и изящнее.
См. также команду NOT, которая делает отрицание (к примеру, так: NOT IN).
См. также команду BETWEEN, которая выбирает записи по диапазону значений.
Синтаксис
SELECT * FROM имя_таблицы WHERE поле IN (значение1, значение2...)
Примеры
Все примеры будут по этой таблице workers, если не сказано иное:
id айди |
name имя |
age возраст |
salary зарплата |
---|---|---|---|
1 | Дима | 23 | 400 |
2 | Петя | 25 | 500 |
3 | Вася | 23 | 500 |
4 | Коля | 30 | 1000 |
5 | Иван | 27 | 500 |
6 | Кирилл | 28 | 1000 |
Пример
Давайте выберем записи с id, равным 1, 3 и 5:
SELECT * FROM workers WHERE id IN (1, 3, 5)
SQL запрос выберет следующие строки:
id айди |
name имя |
age возраст |
salary зарплата |
---|---|---|---|
1 | Дима | 23 | 400 |
3 | Вася | 23 | 500 |
5 | Иван | 27 | 500 |
Пример
Давайте выберем записи с именами 'Дима', 'Коля', 'Кирилл':
SELECT * FROM workers WHERE id IN ('Дима', 'Коля', 'Кирилл')
SQL запрос выберет следующие строки:
id айди |
name имя |
age возраст |
salary зарплата |
---|---|---|---|
1 | Дима | 23 | 400 |
4 | Коля | 30 | 1000 |
6 | Кирилл | 28 | 1000 |