Бесплатный вебинар
«как найти любимую работу»
Подарки на 150 000 ₽ за участие
Живой эфир
Записи не будет!
00:00:00:00
дн.ч.мин.сек.

Запрос SQL с множественными значениями: пример WHERE

Быстрый ответ

Для одновременного фильтра данных по нескольким параметрам в SQL используйте оператор IN:

SQL
Скопировать код
SELECT * FROM таблица WHERE столбец IN ('Значение1', 'Значение2', 'Значение3');

Подставьте вместо таблица и столбец имена соответствующих объектов в вашей базе данных, и укажите требуемые значения.

Этот оператор позволяет выбрать записи, для которых столбец содержит любое из перечисленных значений, исключая необходимость использования условия OR несколько раз.

Кинга Идем в IT: пошаговый план для смены профессии

Улучшение конструкции WHERE

Комбинирование условий с помощью AND

Для более сложных запросов совмещайте IN с AND:

SQL
Скопировать код
SELECT *
FROM таблица
WHERE столбец IN ('Значение1', 'Значение2', 'Значение3')
AND другой_столбец = 'ДругоеЗначение';

Использование AND дает возможность добавить дополнительные условия к запросу вместе с IN.

Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Получение уникальных значений с помощью DISTINCT

Для выборки только уникальных записей применяйте DISTINCT:

SQL
Скопировать код
SELECT DISTINCT столбец
FROM таблица
WHERE столбец IN ('Значение1', 'Значение2', 'Значение3');

С использованием DISTINCT каждое значение в результатах будет уникальным.

Работа с диапазонами данных посредством BETWEEN

Для фильтрации данных по диапазону значений используйте BETWEEN:

SQL
Скопировать код
SELECT *
FROM таблица
WHERE столбец BETWEEN 'НачальноеЗначение' AND 'КонечноеЗначение';

Оператор BETWEEN позволяет отсеивать строки, где значения столбец находятся между заданным начальным и конечным значениями.

Визуализация

Осуществляя выборку с помощью WHERE и нескольких значений, это можно представить как камеру с цветными фильтрами:

SQL
Скопировать код
SELECT * FROM Фотографии WHERE Цвет IN ('Синий', 'Зелёный', 'Красный')

Это аналог использования синего, зелёного и красного фильтров для выделения изображений нужных оттенков.

Глубокое погружение в продвинутые методы наложения условий

Друзья по проектам: JOIN

INNER JOIN применяется, когда в запросах задействованы несколько таблиц:

SQL
Скопировать код
SELECT песни.НазваниеПесни
FROM песни
INNER JOIN исполнители ON песни.IDИсполнителя = исполнители.ID
WHERE исполнители.Имя IN ('Исполнитель1', 'Исполнитель2', 'Исполнитель3');

JOIN дает возможность связывать таблицы и отфильтровывать результаты запроса по набору критериев.

Организация данных с помощью GROUP BY

Для группировки данных используйте GROUP BY в связке с HAVING:

SQL
Скопировать код
SELECT НазваниеПесни, COUNT(DISTINCT ИмяЧеловека) as 'Кол-воУчастников'
FROM песни
GROUP BY НазваниеПесни
HAVING COUNT(DISTINCT ИмяЧеловека) > 1;

Такой подход позволяет, например, найти песни, авторами которых было более одного человека.

Сессии работы с хранимыми процедурами

Для повышения безопасности и повторного использования запросов предпочтительно использовать параметризованные хранимые процедуры:

SQL
Скопировать код
CREATE PROCEDURE FilterByValues(
    @Value1 VARCHAR(255), 
    @Value2 VARCHAR(255), 
    @Value3 VARCHAR(255) 
)
AS
BEGIN
    SELECT *
    FROM таблица
    WHERE столбец IN (@Value1, @Value2, @Value3);
END

Таким образом, можно неоднократно выполнять один и тот же запрос с различными значениями без изменения кода запроса.

Полезные материалы

  1. SQL IN Operator — Детальное руководство по использованию оператора IN в SQL.
  2. SQL WHERE Clause – Tutorial Republic — Урок о применении оператора WHERE для фильтрации данных.
  3. Parameterize an SQL IN clause – Stack Overflow — Оптимизация фильтрации данных в SQL с помощью параметризованных условий.
  4. SQL BETWEEN | Basic SQL – Mode — Применение оператора BETWEEN в SQL.
  5. No Title Found — Как исключить NULL значения в условии WHERE.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какой оператор используется для фильтрации данных по нескольким значениям в SQL?
1 / 5