GREATEST
GREATEST( expr 1, expr 2, . . .)
Повертає найбільший аргумент. Найбільший серед заданих аргументів визначається згідно з наступними правилами.
Якщо всі задані в функції аргументи являються цілими значеннями, то вони порівнюються як цілі.
Якщо всі задані в функції аргументи являються значеннями з плаваючою комою, то вони порівнюються як значення з плаваючою комою.
Якщо перші два правила не підходять, аргументи порівнюються як рядки. Реєстр символів при порівнянні враховується лише в тому разі, як би один із заданих аргументів являється двійковим рядком.
GREATEST(2, 3, 1) ->3
GREATEST(38. 5, 94. 2, - 1) ->94.2
GREATEST('a', 'ab', 'abc') ->'abc'
GREATEST(1, 3, 5) ->5
GREATEST('A', 'B', 'C') ->"C"
GREATEST(BINARI 'A', ' B', 'C') ->"b"
Функція GREATEST() вперше з'явилась в MySQL 3.22.5. В більш ранніх версіях замість неї можна використовувати функцію MAX() .
IF
IF(expr1, expr2, expr3)
Якщо аргумент expr1 правильний(не 0 або NULL), повертається аргумент expr2. В іншому випадку ця функція аргумент expr3. Функція IF() повертає число або рядок у відповідності з контекстом, в якому задається.
IF(1, 'true', 'false') ->'true'
IF(0, 'true', 'false') -> 'false'
IF(NULL, 'true', 'false') -> 'false'
IF(1.3, 'non-zero', 'zero') -> 'non-zero'
IF(0.3, 'non-zero', 'zero') -> 'zero'
IF(0.3 != 0, 'non-zero', 'zero') -> 'non-zero'
Аргумент expr1 вираховується як ціле значення і в останніх трьох прикладах показано яка помилка може виникнути через неуважність користувача. Значення 1.3 перетворюється в ціле значення 1, яке являється істинним. Проте 0.3 перетворюється в ціле значення 0, яке є невірним. В останньому прикладі списку показаний правильний варіант використання чисел з плаваючою комою. Скористайтесь ним при виконанні порівняння. В результаті цього порівняння повернеться 1 або 0 в залежності від результату перевірки.
STRCMP
STRCMP(str1, str2)
Ця функція повертає результат 1, 0, -1, якщо перший аргумент лексично більший, рівний чи менший за другий. Результат буде NULL, якщо хоча б один з аргументів має значення NULL. Починаючи з MySQL 4.0.0, при порівнянні регістр символів не враховується, за винятком тих випадків, якщо один з аргументів є бінарним рядком.
STRCMP('a', 'a') ->0
STRCMP('a', 'A') ->0
STRCMP('A', 'a') ->0
STRCMP(BINARY 'a', 'A') ->1
STRCMP(BINARY 'A', 'a') ->-1
До MySQL 4.0.0 при порівнянні регістр враховувався.
STRCMP('a', 'a') ->0
STRCMP('a', 'A') ->1
STRCMP('A', 'a') ->-1