Comment obtenir le maximum de deux valeurs dans MySQL?

J'ai essayé mais j'ai échoué:

mysql> select max(1,0);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near '0)' at line 1
237
demandé sur Taryn 2009-10-14 15:25:39

3 réponses

Utilisation Super()

Par exemple:

SELECT GREATEST(2,1);
433
répondu NinethSense 2015-08-11 21:05:31

Pour obtenir la valeur maximale d'une colonne sur un ensemble de lignes:

SELECT MAX(column1) FROM table; -- expect one result

Pour obtenir la valeur maximale d'un ensemble de colonnes, littéraux ou variables pour chaque ligne:

SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
21
répondu cs_alumnus 2014-10-13 18:07:18

Vous pouvez utiliser la fonction GREATEST avec des champs non nullables. Si l'une de ces valeurs (ou les deux) peut être NULL, ne l'utilisez pas (le résultat peut être NULL).

select 
    if(
        fieldA is NULL, 
        if(fieldB is NULL, NULL, fieldB), /* second NULL is default value */
        if(fieldB is NULL, field A, GREATEST(fieldA, fieldB))
    ) as maxValue

Vous pouvez changer NULL à votre valeur par défaut préférée (si les deux valeurs sont NULL).

4
répondu Leonid Zakharov 2016-07-09 00:16:12