Ознайомлення з операторами 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, щоб об’єднувати кілька логічних виразів для фільтрації результатів в базі даних.

 

Recent Posts

Чому обрати освіту за кордоном: переваги для майбутнього вашої дитини

Навчання за кордоном вже давно асоціюється з якісною освітою, новими можливостями та безліччю перспектив. Але…

18 години ago

Як вибрати майстра для перетяжки меблів?

Вибір майстра для ремонту та перетяжки меблів – завдання, яке потребує вдумливого підходу. Адже від…

2 дні ago

Що краще вибрати для хостингу: сервер VPS Windows чи VPS Linux?

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

1 тиждень ago

Лоуренс Пітер

Щоб уникати помилок, потрібно набиратися досвіду; щоб набиратися досвіду, потрібно робити помилки Лоуренс Пітер  

2 тижні ago

Що таке Чорне СЕО (Black Hat SEO) — вся потрібна інформація

Коротке визначення Чорного SEO Чорне СЕО (або Чорна оптимізація) — це будь-яка практика, метою якої…

2 тижні ago

Права категорії C: кому вони потрібні та як їх отримати?

Отримання прав водія категорії C відкриває двері до професійної діяльності, пов'язаної з керуванням вантажними автомобілями.…

3 тижні ago