Оператори порівняння і логічні оператори в mysql
Оператори порівняння
Оператори порівняння використовуються для порівняння значення стовпців в таблицях, виразів, констант. Порівнювані значення можуть належати різним типам даних. Результатом порівняння може бути - 1 (істина, TRUE), 0 (брехня, FALSE) або NULL.
NULL - невизначене значення що не належить ні до одного типу даних, відповідає поняттю нічого, це значення нерівно нулю і нерівно порожній рядку. Порівняння будь-яких значень з NULL видасть результат NULL.
Оператор рівності (=)
X = Y повертає значення:
TRUE - якщо X збігається з Y.
FALSE - якщо X не збігається з Y.
NULL - якщо один або два операнда рівні NULL.
Вибирає рядки, в яких значення в стовпці name1 одно data, при порівнянні рядків регістр символів не враховується.
Оператор рівності ( <=> ) NULL-безпечне порівняння
X <=> Y повертає значення:
TRUE - якщо X і Y рівні NULL.
FALSE - якщо X або Y дорівнює NULL.
Якщо X і Y не рівні NULL, даний оператор повертає значення ідентичні оператору X = Y.
Оператор (IS) або (IS NOT)
X IS TRUE повертає значення:
TRUE - якщо X неравен нулю або нульовий датою.
FALSE - в інших випадках.
X IS NOT TRUE повертає значення:
FALSE - якщо X неравен нулю або нульовий датою.
TRUE - в інших випадках.
X IS FALSE повертає значення:
TRUE - якщо X дорівнює нулю або нульовий датою.
FALSE - в інших випадках.
X IS NOT FALSE повертає значення:
FALSE - якщо X дорівнює нулю, або нульовий датою.
TRUE - в інших випадках.
X IS UNKNOWN або X IS NULL повертає значення:
TRUE - якщо X дорівнює NULL.
FALSE - в інших випадках.
X IS NOT UNKNOWN або X IS NOT NULL повертає значення:
FALSE - якщо X дорівнює NULL.
TRUE - в інших випадках.
Оператори IS і IS NOT в результаті порівняння повертають протилежні результати.
Оператор не дорівнює (X! = Y)
X <> Y - другий варіант запису X! = Y.
X! = Y повертає значення:
TRUE - якщо X і Y не рівні.
FALSE - якщо X і Y рівні.
NULL - якщо X або Y дорівнює NULL.
Оператор менше ( <) или больше (> )
X TRUE - якщо X менше Y. FALSE - якщо X дорівнює Y або X більше Y. NULL - якщо X або Y дорівнює NULL. X> Y повертає значення: TRUE - якщо X більше Y; FALSE - якщо X одно Y або X менше Y; NULL - якщо X або Y дорівнює NULL. X <= Y возвращает значения: TRUE - якщо X одно Y або X менше Y. FALSE - якщо X більше Y. NULL - якщо X або Y дорівнює NULL. X> = Y повертає значення: TRUE - якщо X одно Y або X більше Y. FALSE - якщо X менше Y. NULL - якщо X або Y дорівнює NULL. X BETWEEN a AND b повертає значення: TRUE - якщо a FALSE - якщо X менше a або більше b; NULL - в інших випадках. X NOT BETWEEN a AND b повертає значення: TRUE - якщо X менше a або більше b; FALSE - якщо a NULL - в інших випадках. Першим запитом вибираються рядки з таблиці testtable, в яких значення в стовпці id лежить в діапазоні від 80 до 84. Другим запитом вибираються всі рядки з таблиці testtable, крім тих рядків, значення яких в стовпці id лежить в діапазоні від 80 до 84. X IN (N1, ..., Nn) повертає значення: TRUE - якщо X збігається з одним з елементів списку (N1, ..., Nn). FALSE - якщо X не збігається ні з одним з елементів списку (N1, ..., Nn). NULL - якщо X дорівнює NULL або коли в списку присутній значення NULL і при цьому X не збігається ні з одним з елементів списку. X NOT IN (N1, ..., Nn) повертає значення: TRUE - якщо X не збігається ні з одним з елементів списку. FALSE - якщо X збігається з одним з елементів списку. NULL - якщо X дорівнює NULL або коли в списку присутній значення NULL і при цьому X не збігається ні з одним з елементів списку. Першим запитом вибираються рядки з таблиці testtable, в яких значення в стовпці id дорівнює 2, 5 і 8. Другим запитом вибираються всі рядки з таблиці testtable, крім тих рядків, значення яких в стовпці id дорівнює 2 і 5. X LIKE Y повертає значення: TRUE - якщо X відповідає шаблоном. FALSE - якщо X не відповідає шаблоном. NULL - якщо X або Y дорівнює NULL. X NOT LIKE Y повертає значення: FALSE - якщо X відповідає шаблоном. TRUE - якщо X не відповідає шаблоном. NULL - якщо X або Y дорівнює NULL. Можна використовувати спеціальні групові символи в шаблоні: % - відповідає будь-якій довільній послідовності символів. _ - відповідає одному довільному символу. Якщо ці символи треба використовувати не як спеціальні групові символи, а як звичайні символи, перед ними потрібно поставити символ зворотної косої риски (\%), (\ _) а якщо хочемо використовувати символ зворотної косої межі, то використовуємо ще одну зворотну косу риску ( \\). Символи введені великими та малими буквами вважаються однаковими, однак існує можливість розрізняти ці символи, для цього використовуємо BINARY LIKE і BINARY NOT LIKE. Першим запитом вибираються рядки з таблиці testtable, в яких значення в стовпці id містить символи 55. Другим запитом вибираються всі рядки з таблиці testtable, крім тих рядків, значення яких в стовпці id містить символи kk, причому символ k повинен бути обов'язково рядкової буквою. STRCMP (X, Y) повертає: - 1 - якщо X передує Y в алфавітному порядку. 0 - якщо X і Y збігаються. 1 - якщо X слід після Y в алфавітному порядку. NULL - якщо X або Y дорівнює NULL. На основі логічних операторів можна побудувати складні умова відбору з використанням операторів порівняння. Результатом роботи логічних операторів може бути - 1 (істина, TRUE), 0 (брехня, FALSE) або NULL. - другий варіант запису AND. X AND Y повертає: TRUE - якщо X і Y істинні значення. FALSE - якщо (X або Y) або (X і Y) помилкові значення. NULL - в інших випадках. Цим запитом вибираються рядки з таблиці testtable, в яких значення в стовпці name1 одно A5, а в стовпці name2 одно С8. || - другий варіант запису OR. X OR Y повертає значення: TRUE - якщо (X або Y) або (X і Y) істинні значення. FALSE - якщо X і Y помилкові значення. NULL - в інших випадках. Цим запитом вибираються рядки з таблиці testtable, в яких значення в стовпці name1 одно A5 або значення в стовпці name2 одно С8. X XOR Y повертає значення: TRUE - якщо X справжнє, а Y помилкове або навпаки. FALSE - якщо X і Y істинні значення, або помилкові. NULL - якщо X або Y дорівнює NULL. Цей запит виводить рядки з таблиці testtable, в яких значення в стовпці name1 одно F5. і ті рядки значення в стовпці name2 одно H7, що не виводяться рядки, в яких ці умови виконуються одночасно. - другий варіант запису NOT. > NOT X повертає значення: TRUE - якщо X помилкове значення. FALSE - якщо X справжнє значення. NULL - якщо X дорівнює NULL. Цим запитом вибираються всі рядки з таблиці testtable, за винятком рядків в яких значення в стовпці name одно G7. На цьому все. Бувайте усі.Оператор менше або дорівнює ( <= ) или больше или равно (>=)
Оператор між (BETWEEN a AND b) або за межами (NOT BETWEEN a AND b)
Оператор міститься (IN) або не міститься (NOT IN)
Оператор відповідність шаблону (LIKE) або не відповідає шаблони (NOT LIKE)
Оператор порівняння рядків STRCMP (X, Y)
Логічні оператори
Оператор логічне і (AND)
Оператор логічне або (OR)
Оператор логічне виключає або (XOR)
Оператор логічне ні (NOT)