Ознайомлення з операторами 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, ви зможете визначати, чи знаходиться необхідне значення в діапазоні доступних значень.

Дякуємо, що читаєте нас!

 

Share
Теги: mysql

Останні пости

Найкрасивіші та найбільш вражаючі мости з усього світу (ТОП-10)

Міст — це щось більше, ніж просто споруда, яка поєднує два береги. Для того, щоб… Читати далі

19/04/2024

Соломон

Життя нас вчить, що свою пару ми пізнаємо, коли розлучаємося, своїх братів ми пізнаємо, коли… Читати далі

18/04/2024

Чак Поланік

Хто може — той робить. Хто не може — той критикує Чак Поланік   Читати далі

17/04/2024

Річард Бах

Жодне бажання не дається тобі окремо від сили, що дозволяє його здійснити. Хоча, можливо, для… Читати далі

16/04/2024

Стівен Кінг

Життя — це безперервний досвід, і навіть найгірші моменти займають своє місце у пазлі нашого… Читати далі

15/04/2024

невідомий автор

Люди, які люблять самотність, дорого заплатили за дружбу з кимось... (невідомий автор)   Читати далі

14/04/2024