документація mysql
Оператори порівняння дають в результаті величину 1 (істина, TRUE), 0 (брехня, FALSE) або NULL. Ці функції працюють як з числами, так і з рядками. Рядки при необхідності автоматично перетворюються в числа, а числа - в рядки (як в Perl).
Операції порівняння в MySQL виконуються за такими правилами:
- Якщо один або обидва аргументи - NULL. то і результат порівняння буде NULL. Справедливо для всіх операторів крім <=>.
- Якщо обидва аргументи в операторі порівняння є рядками, то вони порівнюються як ланцюжки.
- Якщо обидва аргументи - цілі числа, то вони порівнюються як цілі числа.
- Шістнадцятиричні величини, якщо вони не порівнюються з числом, трактуються як рядки з двійковими даними.
- Якщо один з аргументів є стовпець типу TIMESTAMP або DATETIME. а другий аргумент - константа, то константа перед виконанням порівняння перетвориться до типу TIMESTAMP. Це зроблено для кращої сумісності з ODBC.
- У всіх інших випадках аргументи порівнюються як дійсні числа з плаваючою крапкою.
За замовчуванням порівняння рядків виробляється без урахування регістру символів з використанням поточного набору символів (за замовчуванням ISO-8859-1 Latin1, який, до того ж, прекрасно підходить для англійської мови).
Нижче наведені приклади, що ілюструють перетворення рядків у числа для операторів порівняння:
= Так само: <> != Не дорівнює: <= Меньше или равно: <Меньше чем:>= Більше або дорівнює:> Більше ніж: <=> NULL-безпечне порівняння (так само): IS NULL IS NOT NULL Тест для визначення, є величина дорівнює NULL чи ні: Для того, щоб MySQL добре працював з іншими програмами, забезпечується підтримка наступних додаткових можливостей для функції IS NULL.- Можна знайти останню вставлену рядок, використовуючи вираз: Це властивість можна блокувати установкою SQL_AUTO_IS_NULL = 0. See section 5.5.6 Синтаксис команди SET.
- Для даних типу NOT NULL DATE і стовпців DATETIME можна знайти особливу дату 0000-00-00. використовуючи вираз: Це необхідно для роботи деяких додатків ODBC (так як ODBC не підтримує значення дати 0000-00-00).
- Якщо expr є стовпець типу TIMESTAMP. DATE або DATETIME. а величини MIN () і MAX () є константами, то останні приводяться до того ж формату, що і стовпець.
- Якщо expr є незалежним від регістру символів строковим виразом, то проводиться порівняння рядків без урахування регістру.
- Якщо expr є залежним від регістру символів строковим виразом, то проводиться порівняння рядків з урахуванням регістру.
- Якщо expr є цілочисельне вираз, то виконується порівняння цілих чисел.
- У всіх інших випадках проводиться порівняння аргументів як дійсних чисел з плаваючою точкою.