MySQL: Auf NULL prüfen
Frage von Compi | Letztes Update am 13.05.2021 | Erstellt am 08.07.2015
Ich möchte gern mit der Hilfe von MySQL überprüfen, ob ein Feld beziehungsweise der Inhalt eines Feldes in einer Spalte NULL ist.
Dazu habe ich bisher folgende Anfrage konstruiert:
SELECT id, IFNULL(col, 0, col) FROM tab
Die Anfrage soll entweder den Wert der Spalte "col" auslesen, falls "col" nicht NULL ist oder 0, falls doch.
Leider funktioniert es so nicht. Ich bekomme immer die folgende Fehlermeldung:
#1582 - Incorrect parameter count in the call to native function 'IFNULL'
Kann mir jemand sagen, wie ich die Datenbankabfrage richtig formulieren kann? Das normale IF hat doch auch drei Parameter, was mache ich hier falsch?
Ähnliche Themen
MySQL: Zeilenumbrüche in MySQL
Tipp | 0 Kommentare
PHP: Nur bestimmte Buchstaben, Zahlen und Zeichen in einem String zulassen
Tipp | 10 Kommentare
MySQL: 3 Wege um Definitionen und Aufbau einer Tabelle anzuzeigen
Info | 0 Kommentare
MySQL: SELECT 0 statt NULL
Frage | 4 Antworten
MySQL: Minimale Wortlänge bei der Volltextsuche ändern
Tipp | 1 Kommentar
PHP: Strings mit Ctype-Funktionen auf Zeichenklassen überprüfen
Artikel | 0 Kommentare
MySQL: CSV Export als auf dem Server gespeicherte Datei
Tutorial | 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 hast zwei Möglichkeiten, deine Abfrage zu ändern.
Entweder schreibst du
oder du änderst die Abfrage in:
Die erste Abfrage benutzt das normale IF von MySQL. Als ersten Parameter übergibst du "col IS NULL", womit du überprüft, ob die Spalte "col" NULL ist. Als zweiten und dritten Parameter übergibst du entsprechend was je nach Bedingung ausgegeben werden soll. Also 0 falls die Bedingung zutrifft (col ist NULL) oder den Inhalt von col falls die Bedingung nicht zutrifft (col ist ungleich NULL).
Das zweite Beispiel zeigt, wie man IFNULL richtig verwenden kann. IFNULL erwartet zwei Parameter: Zunächst den zu überprüfenden Wert (in deinem Fall der Inhalt von "col") und als zweiten Parameter den Wert, der ausgegeben werden soll, falls der erste Parameter NULL ist. Ansonsten wird der erste Parameter ausgegeben.
Die erste Variante hat natürlich immer dann einen Vorteil, wenn du nicht direkt den Inhalt aus der betreffenden Spalte auslesen möchtest sondern zum Beispiel einen alternativen Inhalt ausgeben möchtest oder den Inhalt noch manipulieren willst.
Letztes Update am 13.05.2021 | Erstellt am 08.07.2015