В сьогоднішньому уроці ми розглянемо основну інформацію по операторам 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, ви зможете визначати, чи знаходиться необхідне значення в діапазоні доступних значень.
Дякуємо, що читаєте нас!
Сьогоднішній огляд присвячений людям, для яких важливе питання конфіденційності в Інтернеті, та хто цінує свої…
Вперше про бренд Pro Plan почули у 1986 році, коли він став частиною американської компанії…
Страх покарання гірше самого покарання (Покарання — завжди щось конкретне, і воно все ж краще,…
Якщо ви плануєте розмістити веб-сайт в мережі Інтернет, дуже важливо знайти для нього швидкий і…
Навчання за кордоном вже давно асоціюється з якісною освітою, новими можливостями та безліччю перспектив. Але…
Вибір майстра для ремонту та перетяжки меблів – завдання, яке потребує вдумливого підходу. Адже від…