Ознакомление с операторами IN и BETWEEN в MySQL

В сегодняшнем уроке мы рассмотрим основную информацию по операторам IN и BETWEEN в MySQL. С помощью оператора IN вы сможете определить, соответствует ли нужное значение какому-либо значению из списка (или в подзапросе). А с помощью оператора BETWEEN вы сможете определить, находится ли нужное значение в диапазоне доступных значений.

Ознакомление с оператором IN в MySQL

Оператор IN позволяет определить, соответствует ли указанное значение какому-либо значению в наборе значений или наборе, возвращенным подзапросом.

Ниже показан синтаксис оператора IN:

SELECT
 col_1,col_2,...
FROM
 table_name
WHERE
 (expr|col_1) IN ('value1','value2',...);

Давайте рассмотрим этот пример запроса более подробно:

  • Используйте столбец (col_1) или выражение (expr) с оператором IN в предложении WHERE.
  • Разделяйте значения в списке запятыми (,).

Оператор IN возвращает 1, если значение col_1 или результат выражения expr равен любому значению в списке, в противном случае он возвращает 0.

Когда все значения в списке являются константами, MySQL выполняет следующие шаги:

  • Сначала оценивает значения на основе типа col_1 или результата выражения expr.
  • Во-вторых, сортирует значения.
  • В-третьих, ищет значение, используя алгоритм двоичного поиска (бинарный). Поэтому запрос, использующий оператор IN со списком констант, выполняется очень быстро.

Обратите внимание, что если expr или любое значение в списке равно NULL, оператор IN возвращает NULL.

Вы можете объединить оператор IN с оператором NOT, чтобы определить, не соответствует ли значение какому-либо значению в списке или подзапросе. И вы также можете использовать оператор IN в предложении WHERE других операторов, таких как UPDATE и DELETE.

Примеры оператора IN в MySQL

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

Если вы хотите найти офисы, расположенные в Германии и США, вы можете использовать оператор IN в качестве следующего запроса:

SELECT
 officeCode,
 country
FROM
 offices
WHERE
 country IN ('Germany', 'USA');

Использование оператора IN с подзапросом

Оператор IN часто используется с подзапросом. Вместо предоставления списка литеральных значений подзапрос получает список значений из одной или нескольких таблиц и использует их в качестве входных значений оператора IN.

Например, если вы хотите найти заказы, суммарные значения которых превышают 50 000, вы можете использовать оператор IN, как показано в следующем запросе:

SELECT
 orderNumber,
 status
FROM
 orders
WHERE orderNumber IN
(
SELECT
 orderNumber
FROM
 orderDetails
GROUP BY
 orderNumber
HAVING SUM(quantityOrdered * priceEach) > 50000
);

Ознакомление с оператором BETWEEN в MySQL

Оператор BETWEEN – это логический оператор, который позволяет определить, находится ли нужное значение в указанном диапазоне, или же нет. Оператор BETWEEN часто используется в предложении WHERE операторов SELECT, UPDATE и DELETE.

Ниже показан синтаксис оператора BETWEEN:

expr BETWEEN start_expr AND end_expr;

Значение expr – это выражение для тестирования в диапазоне, определенном значениями start_expr и end_expr. Все три выражения: expr, start_expr и end_expr должны иметь одинаковый тип данных.

Оператор BETWEEN возвращает true, если значение expr больше или равно (>=) значения start_expr и меньше или равно (<=) значения end_expr, в противном случае возвращается ноль.

Условие NOT BETWEEN возвращает true, если значение expr меньше (<) значения start_expr или больше (>) значения значения end_expr, в противном случае возвращается 0.

Если какое-либо выражение равно NULL, оператор BETWEEN возвращает NULL.

Примеры использования оператора BETWEEN в MySQL

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

Пример №1: Использование оператора BETWEEN с указанием чисел

В следующем примере оператор BETWEEN используется для поиска товаров, у которых цены находятся в диапазоне от 500 до 1000:

SELECT
 productName,
 prodPrice
FROM
 products
WHERE
 prodPrice BETWEEN 500 AND 1000;

Вы также можете переписать приведенный выше запрос, используя в качестве запроса значения меньше или равно (<=), больше или равно (>=) и логический оператор AND:

SELECT
 productName,
 prodPrice
FROM
 products
WHERE
 prodPrice >= 500 AND prodPrice <= 1000;

Пример №2: Использование оператора BETWEEN с указанием дат

Когда вы используете оператор BETWEEN со значениями даты, чтобы получить наилучший результат, вы должны использовать приведение типа для явного преобразования типа столбца или выражения в тип DATE.

В следующем примере мы ищем заказы, которые были сделаны в период между датами с 01.01.2019 по 31.12.2019:

SELECT
 orderNumber,
 orderDate
FROM
 orders
WHERE
 orderDate BETWEEN
CAST('2019-01-01' AS DATE) AND
CAST('2019-12-31' AS DATE);

Поскольку типом данных, который используется в столбце с датой, является DATE, мы используем оператор CAST, который преобразовывает буквенные строки вида ‘2019-01-01’ и ‘2019-12-31’ в значения DATE.

Вот и все на сегодня! Из этого урока вы узнали основную информацию об операторах IN и BETWEEN в MySQL. Используя оператор IN, вы сможете определить соответствие нужного значения какому-либо значению из списка. А используя оператор BETWEEN, вы сможете определять, находится ли требуемое значение в диапазоне доступных значений.

Спасибо, что читаете нас!

Tags: mysql

Recent Posts

Признаки качественного хостинга: выбираем с умом

Хостингом называется специальное пространство, предназначенное для хранения файлов веб-сайта. Клиентам доступны разные типы размещения и… Read More

30/09/2020

Как выучить немецкий язык легко и весело? С помощью Beste Freunde!

Немецкий часто считается сложным языком. Да, немецкая лексика имеет «тяжелый» характер. Да, есть действительно очень… Read More

27/09/2020

Отопление и горячая вода – когда нужно, а не когда соизволят включить

Тепло в доме и горячая вода в любое время для многих жителей многоквартирных и частных… Read More

19/09/2020

Инструкция по скачиванию видео с сервиса TikTok (бесплатно и без watermark)

Если вы еще не слышали о TikTok, тогда рекомендуем вам сначала ознакомиться с этим кратким… Read More

17/09/2020

Что есть в бюджетном ноутбуке – на какие характеристики рассчитывать?

Прошли те времена, когда приличный ноутбук стоил от 1000 долларов. Сегодня можно купить довольно неплохой… Read More

16/09/2020

Что лучше – цифровое телевидение Т2 или интернет-телевидение?

Современную жизнь невозможно представить без телевидения. Оно позволяет узнавать о событиях в Украине и мире,… Read More

02/09/2020