Із сьогоднішньої практичної статті ви дізнаєтеся, як за допомогою операторів AND і OR в 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
використовується для пошуку автомобілів, які випускаються і в Німеччині, і в США:
SELECT cars, country FROM cars WHERE country = 'Germany' AND country = 'USA';
Використовуючи оператор AND
, ви можете комбінувати й більше двох логічних виразів.
Оператор 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 |
MySQL використовує оцінку короткого замикання також і для оператора OR
(АБО). Іншими словами, MySQL перестає оцінювати іншу частину оператора, коли він може визначити результат.
Давайте розглянемо наступний приклад запиту:
SELECT 1 = 1 OR 1 / 0;
Оскільки вираз 1 = 1
завжди повертає true
, MySQL не буде оцінювати вираз 1 / 0
. Якщо ж це станеться, він видасть помилку ділення на нуль.
Коли ви використовуєте більше одного логічного оператора у виразі, MySQL завжди оцінює оператори OR
після операторів AND
. Це називається пріоритет оператора, який визначає порядок оцінки операторів. MySQL спочатку оцінює оператор з більш високим пріоритетом.
Давайте розглянемо наступний приклад:
SELECT true OR false AND false;
Як це працює:
AND
, тому вираз false AND false
повертає false
.OR
, тому вираз true OR false
повертає true
.
Щоб змінити порядок оцінки, використовуйте круглі дужки, наприклад так:
SELECT (true OR false) AND false;
Як це працює:
(true OR false)
і повертає true
true AND false
і повертає false
.
У наступному запиті оператор 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, щоб об’єднувати кілька логічних виразів для фільтрації результатів в базі даних.
Навчання за кордоном вже давно асоціюється з якісною освітою, новими можливостями та безліччю перспектив. Але…
Вибір майстра для ремонту та перетяжки меблів – завдання, яке потребує вдумливого підходу. Адже від…
Вибір ідеального хостингу під свій сайт може бути досить заплутаною справою, особливо коли існує багато…
Щоб уникати помилок, потрібно набиратися досвіду; щоб набиратися досвіду, потрібно робити помилки Лоуренс Пітер
Коротке визначення Чорного SEO Чорне СЕО (або Чорна оптимізація) — це будь-яка практика, метою якої…
Отримання прав водія категорії C відкриває двері до професійної діяльності, пов'язаної з керуванням вантажними автомобілями.…