Підступна війна росії проти України. Орієнтовні втрати ворога
(станом на 05.07.2022)
36350
осіб
217
літаків
187
гелікоптерів
1594
танків
3772
ББМ
806
артилерія
105
ППО
247
РСЗВ
2634
машин
15
кораблі і катери
Ознайомлення з операторами AND і OR в MySQL

Ознайомлення з операторами AND і OR в MySQL

Із сьогоднішньої практичної статті ви дізнаєтеся, як за допомогою операторів AND і OR в MySQL об’єднувати кілька логічних виразів для фільтрації результатів в базі даних.

 

 

Оператор AND в MySQL

Оператор AND (І) – це логічний оператор, який об’єднує два або більше логічних вирази і повертає true (істина), тільки якщо обидва вирази мають значення true. Оператор AND повертає false (хиба), якщо одне з двох виразів оцінюється як false.

 

Нижче представлений синтаксис оператора AND:

логічний_вираз_1 AND логічний_вираз_2

 

Логічний вираз – це булевий вираз, тобто, вираз, результатом якого є або ІСТИНА (true), або ХИБА (false), або NULL.

 

У цій табличці показано результати оператора AND при різних комбінаціях з true, false і null.

TRUE FALSE NULL
TRUE TRUE FALSE NULL
FALSE FALSE FALSE FALSE
NULL NULL FALSE NULL

 

 

Оператор AND часто використовується в умові WHERE операторів SELECT, UPDATE, DELETE для формування більш детальної умови. Оператор AND також використовується в умовах приєднання виразів INNER JOIN та LEFT JOIN.

 

При оцінці виразу з оператором AND, MySQL зупиняє оцінку решти частин умови щоразу, коли він може визначити результат. Ця функція називається оцінкою короткого замикання.

 

Розглянемо наступний приклад.

SELECT 1 = 0 AND 1 / 0;

 

Зверніть увагу, що в MySQL нуль вважається хибним (false), а ненульове значення вважається істиною (true).

В результаті оцінки короткого замикання, MySQL буде оцінювати тільки першу частину виразу (1 = 0). Оскільки вираз 1 = 0 повертає false, MySQL може завершити оцінку всього виразу, результатом якого буде false. MySQL не буде оцінювати решту виразу (1 / 0). Якщо ж це було б не так, тоді ви отримаєте помилку, оскільки не можна ділити на нуль.

 

 

Приклад використання оператора AND в MySQL

У наступному запиті оператор AND використовується для пошуку автомобілів, які випускаються і в Німеччині, і в США:

SELECT
  cars,
  country
FROM
  cars
WHERE
  country = 'Germany' AND country = 'USA';

 

 

Використовуючи оператор AND, ви можете комбінувати й більше двох логічних виразів.

 

 

Оператор OR в MySQL

Оператор OR (АБО) в MySQL об’єднує два логічних вирази і повертає true, коли будь-яка з цих умов виконується.

 

Нижче показаний синтаксис оператора OR:

логічний_вираз_1 OR логічний_вираз_2

 

І логічний_вираз_1, і логічний_вираз_2 є булевим типом виразу, яке повертає true, false або NULL.

 

У цій табличці показано результати оператора OR при різних комбінаціях з true, false і null.

TRUE FALSE NULL
TRUE TRUE TRUE TRUE
FALSE TRUE FALSE NULL
NULL TRUE NULL NULL

 

 

 

Оцінка короткого замикання оператора OR в MySQL

MySQL використовує оцінку короткого замикання також і для оператора OR (АБО). Іншими словами, MySQL перестає оцінювати іншу частину оператора, коли він може визначити результат.

 

Давайте розглянемо наступний приклад запиту:

SELECT 1 = 1 OR 1 / 0;

 

Оскільки вираз 1 = 1 завжди повертає true, MySQL не буде оцінювати вираз 1 / 0. Якщо ж це станеться, він видасть помилку ділення на нуль.

 

 

Пріоритет оператора OR в MySQL

Коли ви використовуєте більше одного логічного оператора у виразі, MySQL завжди оцінює оператори OR після операторів AND. Це називається пріоритет оператора, який визначає порядок оцінки операторів. MySQL спочатку оцінює оператор з більш високим пріоритетом.

 

Давайте розглянемо наступний приклад:

SELECT true OR false AND false;

 

Як це працює:

  • По-перше, MySQL оцінює оператор AND, тому вираз false AND false повертає false.
  • По-друге, MySQL обчислює оператор OR, тому вираз true OR false повертає true.

 

Щоб змінити порядок оцінки, використовуйте круглі дужки, наприклад так:

SELECT (true OR false) AND false;

 

Як це працює:

  • По-перше, MySQL оцінює вираз в дужках (true OR false) і повертає true
  • По-друге, MySQL оцінює решту оператора, true AND false і повертає false.

 

 

Приклади використання оператора OR в MySQL

У наступному запиті оператор OR використовується для пошуку автомобілів, які випускаються або в Німеччині, або в США:

SELECT
  cars,
  country
FROM
  cars
WHERE country = 'Germany' OR
  country = 'USA';

 

 

В результаті цього запиту ви отримаєте значення бази даних по автомобілях, які випускаються або в Німеччині, або в США.

 

 

В результаті наступного запиту ви отримаєте значення бази даних по автомобілях, які випускаються або в Німеччині, або в США, а також мають ціну більше 20 тис. доларів.

SELECT
  cars,
  country,
  carPrice
FROM
  cars
WHERE(country = 'Germany'
  OR country = 'USA')
  AND carPrice > 20000;

 

 

 

Із сьогоднішньої практичної статті ви дізналися, як використовувати оператори AND і OR в MySQL, щоб об’єднувати кілька логічних виразів для фільтрації результатів в базі даних.

 

 

Напишіть тут свою думку/питання

Ваша пошта не публікуватиметься.