356 Stimmen

Wie erhält man den Höchstwert zweier Werte in MySQL?

Ich habe es versucht, bin aber gescheitert:

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

655voto

NinethSense Punkte 8324

Verwenden Sie GRÖSSTE()

Z.B.:

SELECT GREATEST(2,1);

Hinweis: Wenn ein einzelner Wert zu diesem Zeitpunkt Null enthält, gibt diese Funktion immer Null zurück (Dank an den Benutzer @sanghavi7)

33voto

cs_alumnus Punkte 1459

Um den Höchstwert einer Spalte in einer Reihe von Zeilen zu ermitteln:

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

Ermittelt den Maximalwert einer Gruppe von Spalten, Literalen oder Variablen für jede Zeile:

SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results

8voto

Leonid Zakharov Punkte 884

Sie können verwenden GREATEST Funktion mit nicht löschbaren Feldern. Wenn einer dieser Werte (oder beide) NULL sein kann, darf er nicht verwendet werden (das Ergebnis kann NULL sein).

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

Sie können NULL in Ihren bevorzugten Standardwert ändern (wenn beide Werte NULL sind).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X