00 Stimmen

MySQL: Summe oder 0 wenn kein Datensatz existiert

Frage von Gast | 04.11.2015 um 10:04

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
0Beste Antwort0 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

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

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.