В сегодняшнем уроке мы рассмотрим основную информацию по операторам IN и BETWEEN в MySQL. С помощью оператора IN вы сможете определить, соответствует ли нужное значение какому-либо значению из списка (или в подзапросе). А с помощью оператора BETWEEN вы сможете определить, находится ли нужное значение в диапазоне доступных значений.
Оператор 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
.
Обратите внимание, что если expr
или любое значение в списке равно NULL
, оператор IN
возвращает NULL
.
Вы можете объединить оператор IN
с оператором NOT
, чтобы определить, не соответствует ли значение какому-либо значению в списке или подзапросе. И вы также можете использовать оператор IN в предложении WHERE
других операторов, таких как UPDATE
и DELETE
.
Давайте попрактикуемся на некоторых примерах использования оператора IN.
Если вы хотите найти офисы, расположенные в Германии и США, вы можете использовать оператор IN
в качестве следующего запроса:
SELECT officeCode, country FROM offices WHERE country IN ('Germany', 'USA');
Оператор 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
– это логический оператор, который позволяет определить, находится ли нужное значение в указанном диапазоне, или же нет. Оператор 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
.
В следующем примере оператор 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;
Когда вы используете оператор 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, вы сможете определять, находится ли требуемое значение в диапазоне доступных значений.
Спасибо, что читаете нас!
Грехи других судить вы так усердно рветесь, начните со своих и до чужих не доберетесь… Read More
Люди, между которыми есть любовь и взаимопонимание, скрепляют отношения и зарождают новый союз, а дату… Read More
Для качественного SEO (поисковой оптимизации, раскрутки сайта) одним из важных показателей является Авторитет домена (Domain… Read More
Выяснение того, как вывести свои деньги с PayPal, является одним из первых вопросов, которыми озадачивается… Read More
Юбка – мощный элемент женского гардероба, благодаря которому любой наряд будет выглядеть потрясающе стильно и… Read More
Поисковые системы (например, Google) проверяют технические характеристики вашего сайта, такие как скорость загрузки, удобство навигации,… Read More