11 Stimme

MySQL: Testen ob Feld Null oder leer ist

Frage von Gast | 10.06.2015 um 19:11

Wie kann ich in MySQL überprüfen, ob ein beliebiges Feld einer Tabelle entweder einen leeren Wert (leeren String) enthält oder auf NULL steht?

Meine Experimente mit IFNULL und ähnlichen Ansätzen hat leider nicht zum Erfolg geführt. Gibt es dabei gegen einen Trick? Was muss ich beachten?

AntwortenPositivNegativDatumStimmen
Avatar
3Beste Antwort3 Stimmen

Falls du alle Datensätze einer Tabelle auslesen möchtest, die in einer bestimmten Spalte einen leeren String oder NULL als Wert haben, kannst du folgende Abfrage verwenden:

SELECT * FROM tab WHERE col IS NULL OR col = ''

Mit "IS NULL" kannst du auf NULL prüfen, mit "= ''" auf einen leeren String.

Suchst du alle Datensätze, bei denen das Feld nicht NULL und nicht leer ist, kannst du folgende Abfrage verwenden:

SELECT * FROM tab WHERE col IS NOT NULL AND col != ''

Wenn du das ganze in ein IF packen möchtest, kannst du es zum Beispiel so machen:

SELECT IF(col IS NULL OR col = '', 'leer', col) FROM tab

Mit dieser Abfrage prüfst du bei jedem Datensatz, ob "col" NULL oder leer ist und jetzt entweder den String "leer" zurück, falls die Bedingung zutreffend ist oder den Inhalt der Spalte falls nicht.
13.06.2015 um 09:25

AntwortenPositiv Negativ
Avatar
-11 Stimme

Folgendes ist effizienter, um leere Felder zu finden:

SELECT * FROM tab WHERE col > '';

05.05.2020 um 15:20

Positiv Negativ
Avatar
00 Stimmen

Leider NEIN.

Ich habe z.B. eine Abfrage gehabt, in der col>'' und col!='' unterschiedliche Ergebnisse liefern.

Tatsächlich kam es bei mir vor (mysql 5.7 Percona), dass die Bedingung col<'' zutraf !!!
15.09.2020 um 12:01

Positiv Negativ
Antworten
Avatar
00 Stimmen

Du kannst auch die Funktion IFNULL() verwenden:

1. SELECT IFNULL(1,0); -- gibt 1 zurück

2. SELECT IFNULL('',1); -- gibt '' zurück

3. SELECT IFNULL(NULL,'IFNULL function'); -- gibt "IFNULL function" zurück
06.05.2020 um 17:09

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

MySQL: SELECT 0 statt NULL
Frage | 4 Antworten
MySQL: Auf NULL prüfen
Frage | 1 Antwort

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.