В сьогоднішньому уроці ми розглянемо основну інформацію по операторам 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.IN зі списком констант, виконується дуже швидко.
Зверніть увагу, що якщо 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, ви зможете визначати, чи знаходиться необхідне значення в діапазоні доступних значень.
Дякуємо, що читаєте нас!
Іспанська мова приваблює мільйони людей своєю мелодійністю, емоційністю та відносною простотою вивчення. Одним із найважливіших…
Коли проєкт залежить від чужих обмежень, зростають ризики простоїв, втрати доступу до даних і складнощів…
У тих, хто планує створення сайту вперше, майже завжди виникає питання: що таке домен і…
Для простого користувача критерієм хорошого Wi-Fi є швидке завантаження сторінок та відсутність буферизації під час…
Коли власник стоматологічної клініки вперше замислюється про автоматизацію, він нерідко іде найпростішим шляхом: гуглить "CRM…
Алоха! Останні кілька років остаточно закріпили тренд на віддалену роботу. Для веб-розробників, DevOps-інженерів та адміністраторів…