# Команда IN

Команда `IN` выбирает записи из базы данных по определенным значениям поля. К примеру, можно выбрать записи, у которых id имеет значение `1`, `3`, `7`, `14`, `28`. Это будет выглядеть так: WHERE id IN (1, `3`, `7`, `14`, 28).

Или же все записи, у которых поле name имеет значение `'user1'`, `'user3'` или `'user4'`. Это будет выглядеть так: WHERE id IN ('user1', `'user3'`, `'user4'`).

В принципе, для таких вещей можно пользоваться и командой `OR`, тогда первый пример будет выглядеть так: WHERE id=1 OR id=3 OR id=7 OR id=14 OR id=28. Вариант с IN все-таки выглядит проще и изящнее.

## Синтаксис

`SELECT * FROM имя_таблицы WHERE поле IN (значение1, значение2...)`

## Таблицы для примеров

таблица employees
id айди | name имя | age возраст | salary зарплата
--- | --- | --- | ---
1 | user1 | 23 | 400
2 | user2 | 25 | 500
3 | user3 | 23 | 500
4 | user4 | 30 | 900
5 | user5 | 27 | 500
6 | user6 | 28 | 900

## Пример

Давайте выберем из таблицы записи с id, равным `1`, `3` и `5`:

`SELECT * FROM employees WHERE id IN (1, 3, 5)`

Результат выполнения кода:

id айди | name имя | age возраст | salary зарплата
--- | --- | --- | ---
1 | user1 | 23 | 400
3 | user3 | 23 | 500
5 | user5 | 27 | 500

## Пример

Давайте выберем из таблицы записи с именами `'user1'`, `'user4'`, `'user6'`:

`SELECT * FROM employees WHERE id IN ('user1', 'user4', 'user6')`

Результат выполнения кода:

id айди | name имя | age возраст | salary зарплата
--- | --- | --- | ---
1 | user1 | 23 | 400
4 | user4 | 30 | 900
6 | user6 | 28 | 900

## Смотрите также

- команду `NOT`,
  которая делает отрицание (так: NOT IN)
- команду `BETWEEN`,
  которая выбирает записи по диапазону значений

←→
↑