Ознакомление с операторами 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, вы сможете определять, находится ли требуемое значение в диапазоне доступных значений.
Спасибо, что читаете нас!
Последние посты
Как выбрать идеальный ноутбук: Полный гайд
Выбор ноутбука может быть сложной задачей в мире, где рынок переполнен вариантами на любой вкус… Читать далее
Томас Эдисон
Наша самая большая слабость заключается в том, что мы быстро сдаемся. Самый верный способ добиться… Читать далее
Самые красивые и впечатляющие мосты со всего мира (ТОП-10)
Мост — это нечто большее, чем просто сооружение, соединяющее два берега. Для того, чтобы появился… Читать далее
Соломон
Жизнь нас учит, что свою пару мы познаем, когда разводимся, своих братьев мы познаем, когда… Читать далее
Чак Паланик
Кто может — тот делает. Кто не может — тот критикует Чак Паланик Читать далее
Ричард Бах
Ни одно желание не дается тебе отдельно от силы, позволяющей его осуществить. Хотя, возможно, для… Читать далее