MySQL: SELECT 0 statt NULL
Frage von Gast | Letztes Update am 12.05.2021 | Erstellt am 30.03.2014
Bei einer meiner MySQL-Anfragen kann es hin und wieder vorkommen, dass der eine oder andere NULL-Wert dabei ist, weil die entsprechende Zelle noch nicht in der Datenbank vorhanden ist.
Um die Werte dennoch in meinem PHP-Skript weiter verarbeiten zu können, würde ich gerne statt der "NULL" direkt eine "0" von MySQL zurückbekommen.
Gibt es irgend eine Möglichkeit in MySQL direkt in der Abfrage festzulegen, dass "0" zurückgegeben werden soll, wenn das Ergebnis "NULL" ist?
Ähnliche Themen
MySQL: CSV Export als auf dem Server gespeicherte Datei
Tutorial | 0 Kommentare
MySQL: Zeilenumbrüche in MySQL
Tipp | 0 Kommentare
MySQL als Taschenrechner
Tipp | 0 Kommentare
MySQL: 3 Wege um Definitionen und Aufbau einer Tabelle anzuzeigen
Info | 0 Kommentare
HTML-Formular mit Daten vorbelegen
Tutorial | 0 Kommentare
ObjectPascal: Filtern und Sortieren von Feldwerten einer Datenbank
Offene Frage | 4 Antworten
MySQL: Reguläre Ausdrücke in MySQL-Abfragen
Info | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Du kannst einfach die Funktion COALESCE() verwenden.
Ein Beispiel dafür wäre:
Hier möchten wir die Spalten "id" und "col" aus der Tabelle "tab" auslesen. Für den Fall dass der Wert von "col" "NULL" ist, geben wir statt "NULL" den Wert 0 aus.
COALESCE() gibt uns den ersten Wert in der Reihe der Übergebenenparameter an, der nicht NULL ist. Demnach würde man mit COALESCE(col, 1) den Wert 1 bekommen, wenn "col" NULL ist.
Es lassen sich aber auch mehrere Parameter übergeben. Zum Beispiel COALESCE(col1, col2, 0). Hier wäre das Ergebnis der Wert aus "col1" falls dieser nicht NULL ist. Falls er NULL ist, würde der Wert aus "col2" zurückgegeben werden und wenn sowohl "col1" als auch "col2" NULL sind, würde auf "0" zurückgegriffen werden.
Letztes Update am 12.05.2021 | Erstellt am 30.03.2014
Statt COALESCE() kannst du auch die Funktion IFNULL() verwenden.
Die Anwendung ist ähnlich, wie die von COALESCE():
Also: Wenn der erste übergebene Wert (hier der Wert aus "col"), NULL ist, nehme den zweiten Wert (hier 0).
Allerdings kann IFNULL() nur 2 Parameter entgegennehmen und ist daher nicht so flexibel einsetzbar wie COALESCE().
30.03.2014 um 21:25
Noch ein kleiner Tipp am Rande: In MySQL kann jede Spalte einen DEFAULT-Wert annehmen.
Vielleicht kann mir das auch schon weiterhelfen. Wenn du nämlich den DEFAULT-Wert deiner Spalte auf "0" setzt, steht dieser Wert automatisch in der Zelle, sobald eine neue Zeile in der Datenbank angelegt wird.
Klar, dieser Tipp funktioniert nicht, wenn du versuchst Werte aus Zeilen auszulesen, die gar nicht vorhanden sind.
Letztes Update am 12.05.2021 | Erstellt am 31.03.2014
Eine andere Möglichkeit ist, die IF Bedingung von MySQL zu nutzen:
In dieser IF-Abfrage überprüfen wir durch "col IS NULL" ob "col" NULL ist. Falls ja, geben wir die Alternative zurück (hier 0); falls nein, geben wir den Inhalt von "col" zurück.
02.04.2014 um 08:05