Ознайомлення з операторами 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)
Міст — це щось більше, ніж просто споруда, яка поєднує два береги. Для того, щоб… Читати далі
Соломон
Життя нас вчить, що свою пару ми пізнаємо, коли розлучаємося, своїх братів ми пізнаємо, коли… Читати далі
Річард Бах
Жодне бажання не дається тобі окремо від сили, що дозволяє його здійснити. Хоча, можливо, для… Читати далі
Стівен Кінг
Життя — це безперервний досвід, і навіть найгірші моменти займають своє місце у пазлі нашого… Читати далі
невідомий автор
Люди, які люблять самотність, дорого заплатили за дружбу з кимось... (невідомий автор) Читати далі