MySQL-MAX () - Funktion auf, vergleichen die numerischen Werte in ein update?
Wenn die Aktualisierung einer Zeile, ich möchte eine built-in check zu tun, einige bounds checking. Die meisten Sprachen haben eine MAX () - Funktion zum zurückgeben der maximum der übergebenen Argumente, aber MySQL scheint die Verwendung von MAX() für etwas anderes. Zum Beispiel:
UPDATE person SET dollars = MAX(0, dollars-20) WHERE id=1
Ich wollen, um zu subtrahieren 20 Dollar von Personen-id 1, aber ich will nicht Dollar, um überhaupt die Vertretung durch einen negativen Wert, also möchte ich eine gebaut-im Vergleich mit 0. Funktioniert das? Oder gibt es einen anderen Weg? Danke!
InformationsquelleAutor DivideByHero | 2009-09-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
MySQL unterstützt eine Funktion namens
GREATEST()
. Es gibt den größten Wert einer Liste von Argumenten.Dies ist keine standard-Funktion in ANSI-SQL, daher zählen Sie nicht darauf, dass es bei anderen Marken der SQL-Datenbank. Wenn Sie eine Hersteller-unabhängige Lösung, verwenden Sie die
CASE
syntax vorgeschlagen, die von anderen. Aber wenn alles, was Sie brauchen, um zu verwenden ist MySQL, diese Funktion ist übersichtlicher.MIN()
Funktion aufgerufen wirdLEAST()
InformationsquelleAutor Bill Karwin