MySQL – Letzten Wert bei NULL

Oft gibt es die Notwendigkeit einen letzten Beitrag anstatt NULL wiederzugeben zu lassen. Beispiel wäre diese Tabelle:

mysql_01

Die Query sucht sich dann bei NULL die letzte Spalte mit einem Wert. Dies ist eine einfache Lösung um bei der Ausgabe von Daten die Felder mit NULL verschwinden zu lassen.

SELECT Id, DateTime, IFNULL(T171_Buero_Raum, (SELECT T171_Buero_Raum FROM prozessvariablen WHERE Id < t.Id AND T171_Buero_Raum IS NOT NULL ORDER BY Id DESC LIMIT 1)) FROM prozessvariablen t

Nun erhalte ich folgendes Ergebnis:

mysql_02

Problem an diesem Vorgang ist die Performance. Besonders in Tabellen mit vielen Feldern mit NULL kann es doch längere Zeit benötigen bis das Resultat erstellt ist. Hier empfiehlt es sich dann auf andere Verfahren zurückzugreifen. Ein Zyklisches Update der Tabelle wäre z.B. eine Möglichkeit die Felder mit NULL völlig verschwinden zu lassen.


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert