0 0 Stimmen

MySQL: Summe oder 0 wenn kein Datensatz existiert

Frage von Gast | 04.11.2015 um 10:04 Uhr

Ich möchte die Summe aller Werte aus einer Spalte in meiner MySQL-Datenbank auslesen. Dazu benutze ich folgende Abfrage.

SELECT SUM(col) FROM tab WHERE ...

Wenn die Abfrage Datensätze findet, gibt es kein Problem, es wird die korrekte Summe ausgelesen.

Problematisch wird es aber immer dann, wenn kein Datensatz gefunden wird. Dann ist das Ergebnis der Abfrage nämlich NULL. Ich würde aber lieber 0 anstatt von NULL bekommen. Geht das irgendwie?

AntwortenPositivNegativ

Stefan Trost

Profil anzeigen | Nachricht
Avatar
0Beste Antwort
0 Stimmen

Du kannst zum Beispiel die Funktion COALESCE oder IFNULL benutzen und deine Abfrage folgendermaßen ändern:

SELECT COALESCE(SUM(col), 0) FROM tab WHERE ...
SELECT IFNULL(SUM(col), 0) FROM tab WHERE ...

COALESCE gibt den ersten der übergebenen Parameter aus, der nicht NULL ist. Das heißt: Wenn SUM(col) NULL ist, wird 0 zurückgegeben. Ähnlich arbeitet auch IFNULL(). Falls der erste Parameter von IFNULL() NULL ist, wird der zweite Parameter zurückgeben, ansonsten der erste.
04.11.2015 um 20:25 Uhr

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

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.