Toutes les fonctions mathématiques retourne NULL en cas d'erreur.
-
Moins unaire. Change le signe de l'argument.
mysql> select - 2; -> -2
Note :@: si cet opérateur est utilisé avec un BIGINT, le résultat sera BIGINT! Cela signifie qu'il faut éviter d'utiliser sur des entiers qui ont la valeur -2^63!
ABS(X)
Valeur absolue de X.
mysql> select ABS(2); -> 2 mysql> select ABS(-32); -> 32
Cette fonction ne pose aucun problème particulier avec les valeurs de type BIGINT.
SIGN(X)
Retourne le signe de l'argument sous la forme -1, 0 or 1, suivant que X est négatif, nul, ou positif.
mysql> select SIGN(-32); -> -1 mysql> select SIGN(0); -> 0 mysql> select SIGN(234); -> 1
MOD(N,M)
%
Modulo (identique à l'opérateur % en langage C). Retourne le reste de la division euclidienne de N par M.
mysql> select MOD(234, 10); -> 4 mysql> select 253 % 7; -> 1 mysql> select MOD(29,9); -> 2
Cette fonction ne pose aucun problème particulier avec les valeurs de type BIGINT.
FLOOR(X)
Retourne le plus grand entier possible mais plus petit que X.
mysql> select FLOOR(1.23); -> 1 mysql> select FLOOR(-1.23); -> -2
Note :@: le résultat est converti en BIGINT!
CEILING(X)
Retourne le plus petit entier possible mais plus grand que X.
mysql> select CEILING(1.23); -> 2 mysql> select CEILING(-1.23); -> -1
Note :@: le résultat est converti en BIGINT!
ROUND(X)
Retourne l'argument X, arrondi à l'entier le plus proche.
mysql> select ROUND(-1.23); -> -1 mysql> select ROUND(-1.58); -> -2 mysql> select ROUND(1.58); -> 2
Note :@: le résultat est converti en BIGINT!
ROUND(X,D)
Retourne l'argument X, arrondi au décimal le plus proche, avec D décimales. Si D =0, le résultat n'aura pas de partie décimale.
mysql> select ROUND(1.298, 1); -> 1.3 mysql> select ROUND(1.298, 0); -> 1
Note :@: le résultat est converti en BIGINT!
EXP(X)
Retourne la valeur de e (base des logarithmes naturels ou népériens) à la puissance X.
mysql> select EXP(2); -> 7.389056 mysql> select EXP(-2); -> 0.135335
LOG(X)
Retourne le logarithme naturel de X.
mysql> select LOG(2); -> 0.693147 mysql> select LOG(-2); -> NULL
Pour obtenir la valeur du logarithme de X dans une base arbitraire, il faut utiliser la formule LOG(X)/LOG(B).
LOG10(X)
Retourne le logarithme de X en base 10.
mysql> select LOG10(2); -> 0.301030 mysql> select LOG10(100); -> 2.000000 mysql> select LOG10(-100); -> NULL
POW(X,Y)
POWER(X,Y)
Retourne la valeur de X à la puissance Y.
mysql> select POW(2,2); -> 4.000000 mysql> select POW(2,-2); -> 0.250000
SQRT(X)
Retourne la racine carrée positive de X.
mysql> select SQRT(4); -> 2.000000 mysql> select SQRT(20); -> 4.472136
PI()
Retourne la valeur de PI.
mysql> select PI(); -> 3.141593
COS(X)
Retourne le cosinus de X, avec X en radians.
mysql> select COS(PI()); -> -1.000000
SIN(X)
Retourne le sinus de X, avec X en radians.
mysql> select SIN(PI()); -> 0.000000
TAN(X)
Retourne la tangente de X, avec X en radians.
mysql> select TAN(PI()+1); -> 1.557408
ACOS(X)
Retourne l'arcosinus de X, c'est à dire l'angle dont le cosinus est X en radians. Retourne NULL si X n'est pas compris entre -1 et 1.
mysql> select ACOS(1); -> 0.000000 mysql> select ACOS(1.0001); -> NULL mysql> select ACOS(0); -> 1.570796
ASIN(X)
Retourne l'arsinus de X, c'est à dire l'angle dont le sinus est X en radians. Retourne NULL si X n'est pas compris entre -1 et 1.
mysql> select ASIN(0.2);
-> 0.201358
mysql> select ASIN('foo');
-> 0.000000
ATAN(X)
Retourne l'arctangente de X, c'est à dire l'angle dont la tangente est X en radians.
mysql> select ATAN(2); -> 1.107149 mysql> select ATAN(-2); -> -1.107149
ATAN2(X,Y)
Retourne l'arc tangente de deux variables X et Y. C'est le même calcul que arc tangent of Y / X, hormis le fait que les signes des deux arguments est utilisé pour déterminer le quadrant du résultat.
mysql> select ATAN(-2,2); -> -0.785398 mysql> select ATAN(PI(),0); -> 1.570796
COT(X)
Retourne la cotangente de X.
mysql> select COT(12); -> -1.57267341 mysql> select COT(0); -> NULL
RAND()
RAND(N)
Retourne un nombre aléatoire, compris entre 0 et 1.0. Si un entier N est précisé, il est utilisé comme valeur de seed.
mysql> select RAND(); -> 0.5925 mysql> select RAND(20); -> 0.1811 mysql> select RAND(20); -> 0.1811 mysql> select RAND(); -> 0.2079 mysql> select RAND(); -> 0.7888
Il est impossible d'utiliser une colonne de valeur RAND() avec la clause ORDER BY , car la colonne sera évalué plusieurs fois. Avec MySQL 3.23, il est cependant possible d'écrire:@: SELECT clean_docs_mysql clean_docs-php debut.php fin.php index.php menu.php mysql php FROM Nom_table ORDER BY RAND(). Comme cela, il est possible de faire une sélection aléatoire d'une table : SELECT clean_docs_mysql clean_docs-php debut.php fin.php index.php menu.php mysql php FROM table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000.
LEAST(X,Y,...)
Au moins deux arguments, retourne la plus petite valeur (minimum). Les arguments sont comparés en utilisant les règles suivantes :@:
LEAST est utilisé dans un contexte d'entiers, ou bien tous les arguments sont des entiers, les arguments sont évalués et comparés en tant qu'entiers.
LEAST est utilisé dans un contexte de nombre à virgule flottante, les arguments sont évalués et comparés en tant que nombre à virgule flottante.
mysql> select LEAST(2,0);
-> 0
mysql> select LEAST(34.0,3.0,5.0,767.0);
-> 3.0
mysql> select LEAST("B","A","C");
-> "A"
Avec les version de MySQL antérieur à la 3.22.5, il est possible d'utiliser MIN() à la place de LEAST.
GREATEST(X,Y,...)
Retourne le plus grand argument de la liste. Les arguments sont comparés de la même manière que pour LEAST.
mysql> select GREATEST(2,0);
-> 2
mysql> select GREATEST(34.0,3.0,5.0,767.0);
-> 767.0
mysql> select GREATEST("B","A","C");
-> "C"
Avec les version de MySQL antérieur à la 3.22.5, il est possible d'utiliser MAX () à la place de GREATEST.
DEGREES(X)
Retourne l'argument X, converti de radians en degrés.
mysql> select DEGREES(PI()); -> 180.000000
RADIANS(X)
Retourne l'argument X, converti de radians degrés en radians.
mysql> select RADIANS(90); -> 1.570796
TRUNCATE(X,D)
Retourne l'argument X, tronqué à D décimales.
mysql> select TRUNCATE(1.223,1); -> 1.2 mysql> select TRUNCATE(1.999,1); -> 1.9 mysql> select TRUNCATE(1.999,0); -> 1