0 0 Stimmen

MySQL: Wie benutze ich IFNULL - Falsche Parameteranzahl Fehler

Frage von Gast | 02.07.2015 um 21:12 Uhr

Ich möchte die MySQL Funktion IFNULL benutzen, um zu überprüfen, ob ein gegebenes Feld meiner Tabelle NULL ist.

Bis jetzt habe ich folgendes versucht:

SELECT IFNULL(col, 0, col) FROM tab

Das soll den Inhalt von "col" ausgeben, falls "col" nicht NULL ist oder 0 falls "col" NULL ist.

Allerdings bekomme ich immer eine Fehlermeldung, dass ich die falsche Anzahl von Parametern benutzen würde, wenn ich die Abfrage ausführe:

Incorrect parameter count in the call to native function 'IFNULL'

Was mache ich falsch? Wie soll man IFNULL denn stattdessen aufrufen? Hat jemand eine Idee?

AntwortenPositivNegativ

Stefan Trost

Profil anzeigen | Nachricht
Avatar
0Beste Antwort
0 Stimmen

IFNULL erwartet zwei Parameter, du übergibst allerdings drei Parameter.

Der erste Parameter von IFNULL ist der zu überprüfende Wert. Dieser wird auch ausgegeben, falls er nicht NULL ist. Falls er NULL ist wird stattdessen der zweite Parameter ausgeben.

Deine Abfrage müsste also lauten:

SELECT IFNULL(col, 0) FROM tab

Zur Verdeutlichung, hier noch einige Beispiele für IFNULL:

IFNULL(1, 0)     -- 1
IFNULL(NULL, 0)  -- 0
IFNULL('', 0)    -- ''

IFNULL(1, 0) ergibt 1 - da der erste Parameter nicht NULL ist, wird auch der erste Parameter zurückgegeben. IFNULL(NULL, 0) ergibt 0 - der erste Parameter ist NULL, also wird der zweite genommen. IFNULL('', 0) ergibt '', da '' nicht NULL ist.

Alternativ kannst du übrigens auch mit IF arbeiten. Ein Beispiel findest du im Thema "Auf Null prüfen".
03.07.2015 um 23:28 Uhr

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

MySQL: Auf NULL prüfen
Frage | 1 Antwort

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.