Все математические функции в случае ошибки возвращают NULL.
-
Унарный минус. Изменяет знак аргумента:
mysql> SELECT - 2;
-> -2
Необходимо учитывать, что если этот оператор используется с данными типа
BIGINT, возвращаемое значение также будет иметь тип BIGINT! Это означает,
что следует избегать использования оператора для целых чисел, которые
могут иметь величину -2^63!
Следует учитывать, что поведение функции ROUND() при значении аргумента,
равном середине между двумя целыми числами, зависит от конкретной
реализации библиотеки C. Округление может выполняться: к ближайшему
четному числу, всегда к ближайшему большему, всегда к ближайшему меньшему,
всегда быть направленным к нулю. Чтобы округление всегда происходило
только в одном направлении, необходимо использовать вместо данной хорошо
определенные функции, такие как TRUNCATE() или FLOOR().
ROUND(X,D)
Возвращает аргумент X, округленный до числа с D десятичными знаками. Если
D равно 0, результат будет представлен без десятичного знака или дробной
части:
Возвращает значение числа "пи". По умолчанию представлено 5 десятичных
знаков, но в MySQL для представления числа "пи" при внутренних вычислениях
используется полная двойная точность.
Возвращает арктангенс двух переменных X и Y. Вычисление производится так
же, как и вычисление арктангенса Y / X, за исключением того, что знаки
обоих аргументов используются для определения квадранта результата:
Возвращает случайную величину с плавающей точкой в диапазоне от 0 до 1,0.
Если целочисленный аргумент N указан, то он используется как начальное
значение этой величины:
В выражениях вида ORDER BY не следует использовать столбец с величинами
RAND(), поскольку применение оператора ORDER BY приведет к многократным
вычислениям в этом столбце. В версии MySQL 3.23 можно, однако, выполнить
следующий оператор: SELECT * FROM table_name ORDER BY RAND(): он
полезен для получения случайного экземпляра из множества SELECT * FROM
table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000. Следует
учитывать, что оператор RAND() в выражении WHERE при выполнении выражения
WHERE будет вычисляться каждый раз заново. Оператор RAND() не следует
воспринимать как полноценный генератор случайных чисел: это просто быстрый
способ динамической генерации случайных чисел, переносимых между
платформами для одной и той же версии MySQL.
LEAST(X,Y,...)
Если задано два или более аргументов, возвращает наименьший (с минимальным
значением) аргумент. Сравнение аргументов происходит по следующим
правилам:
Если возвращаемая величина используется в целочисленном контексте
(INTEGER), или все аргументы являются целочисленными, то они
сравниваются как целые числа.
Если возвращаемая величина используется в контексте действительных
чисел (REAL) или все аргументы являются действительными числами, то
они сравниваются как числа типа REAL.
Если один из аргументов является зависимой от регистра строкой, то
данные аргументы сравниваются с учетом регистра.
В остальных случаях аргументы сравниваются как строки, независимые от
регистра.
Следует учитывать, что обычно в компьютерах десятичные числа хранятся не
так, как целые, а как числа двойной точности с плавающим десятичным знаком
(DOUBLE). Поэтому иногда результат может вводить в заблуждение, как в
следующем примере:
mysql> SELECT TRUNCATE(10.28*100,0);
-> 1027
Это происходит потому, что в действительности 10,28 хранится как нечто
вроде 10,2799999999999999.