Fr 6 Feb, 2009
Benutzerdefinierte Variablen in MySQL
Kommentare (0) Abgelegt unter: Coding, Computer, DatenbankenTags: mysql, variablen
MySQL unterstützt Variablen anscheinend bereits seit Version 3.23.6, aber ich habe diese Möglichkeit (ausserhalb von Stored Procedures) erst vor ein paar Monaten zu Kenntnis genommen und erst gestern wirklich wahrgenommen.
Es gibt ja in der Tat immer wieder Fälle, in denen Variablen einem die Arbeit erheblich erleichtern würden.
Wenn man zum Beispiel zwei Felder ‘datum’ und ‘uhrzeit’ hat, und diese per Select zu einem Feld mit dem Alias ‘datum_zeit’ zusammenfassen möchte, aber gleichzeitig in einem weiteren Feld ‘abgelaufen’ feststellen möchte, ob der Zeitpunkt des Datensatzes bereits vorrüber ist, musste ich das bisher so machen:
IF (CONCAT(datum,’ ‘,uhrzeit) < NOW(), 1, 0) AS abgelaufen
FROM tabelle
Mit Variablen verkürzt sich der Query folgendermassen:
IF (@v < NOW(), 1, 0) AS abgelaufen
FROM tabelle
Ich muss also nicht mehr den CONCAT-Teil wiederholen, sondern kann ihn in der Variable @v speichern und darf diese Variable sofort verwenden. Im Gegensatz zum Alias, denn der ist frühestens im GROUP-BY-Abschnitt verfügbar .
Hier die offizielle MySQL-Dokumentation zu dem Thema: User-Defined Variables