369 Stimmen

Wie prüfe ich, ob eine Spalte in MySQL leer oder null ist?

Ich habe eine Spalte in einer Tabelle, die null oder leere Werte enthalten kann. Wie prüfe ich, ob eine Spalte in den Zeilen einer Tabelle leer oder ungültig ist?

(e.g. null or '' or '  ' or '      ' and ...)

11voto

Reynante Daitol Punkte 479

Entweder

SELECT IF(field1 IS NULL or field1 = '', 'empty', field1) as field1 from tablename

oder

SELECT case when field1 IS NULL or field1 = ''
        then 'empty'
        else field1
   end as field1 from tablename

8voto

Amaynut Punkte 3801

Diese Erklärung ist für mich viel übersichtlicher und besser lesbar:

select * from my_table where ISNULL(NULLIF(some_col, ''));

6voto

diEcho Punkte 51956

Versuchen Sie

SELECT 0 IS NULL ,  '' IS NULL , NULL IS NULL

-> 0, 0, 1

oder

SELECT ISNULL('  ') , ISNULL( NULL )
 -> 0 ,1

Referenz

6voto

Pioz Punkte 5626

Meine Meinung dazu.

In MySQL können Sie mit der COALESCE Funktion:

Gibt den ersten Nicht-NULL-Wert in der Liste zurück, oder NULL, wenn es keine Nicht-NULL-Werte gibt.

Sie können Ihre Anfrage also wie folgt vereinfachen:

SELECT * FROM table WHERE COALESCE(some_col, '') = '';

6voto

Keith Johnson Punkte 61

Ich hasse unübersichtliche Felder in meinen Datenbanken. Wenn die Spalte eine leere Zeichenfolge oder Null sein könnte, würde ich dies lieber beheben, bevor ich jedes Mal die Auswahl durchführe, etwa so:

UPDATE MyTable SET MyColumn=NULL WHERE MyColumn='';
SELECT * FROM MyTable WHERE MyColumn IS NULL

So bleiben die Daten übersichtlich, solange Sie nicht aus irgendeinem Grund zwischen NULL und leer unterscheiden müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X