Wenn Sie mit dem Wert NULL noch keine
          Erfahrung haben, kann Ihnen manche Überraschung bevorstehen.
          Vom Konzept her bezeichnet NULL einen
          „fehlenden unbekannten Wert“ und wird etwas
          anders behandelt als andere Werte. Um auf
          NULL zu prüfen, können Sie arithmetische
          Vergleichsoperatoren wie =,
          < oder <> nicht
          verwenden. Um dies zu demonstrieren, geben Sie einmal
          Folgendes ein:
        
mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
|     NULL |      NULL |     NULL |     NULL |
+----------+-----------+----------+----------+
          Offensichtlich lassen sich aus diesen Vergleichen keine
          sinngebenden Ergebnisse ziehen. Verwenden Sie stattdessen die
          Operatoren IS NULL und IS NOT
          NULL:
        
mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
|         0 |             1 |
+-----------+---------------+
          Beachten Sie, dass 0 oder
          NULL in MySQL „falsch“
          entspricht, während alles andere wahr ist. Der
          standardmäßig „wahr“ entsprechende Wert aus
          einer booleschen Operation ist 1.
        
          Die Sonderbehandlung für NULL ist der
          Grund dafür, warum im vorherigen Abschnitt die Frage, welche
          Tiere nicht mehr leben, mit todestag IS NOT
          NULL statt mit todestag <>
          NULL ermittelt werden musste.
        
          Zwei NULL in einer GROUP
          BY-Klausel werden als gleichberechtigt betrachtet.
        
          Wenn Sie eine ORDER BY-Klausel verwenden,
          werden NULL-Werte zuerst angezeigt, sofern
          Sie ORDER BY ... ASC angeben; im
          umgekehrten Fall ORDER BY ... DESC
          erscheinen sie hingegen am Ende der Ergebnislisten.
        
          Ein häufiger Fehler beim Umgang mit NULL
          besteht in der Annahme, dass es nicht möglich ist, eine Null
          oder einen Leer-String in eine Spalte einzufügen, die als
          NOT NULL definiert ist. Das stimmt nicht.
          Es handelt sich dabei vielmehr um echte Werte, während
          NULL die Bedeutung „kein Wert“
          hat. Sie können dies ganz einfach wie folgt durch Verwendung
          von IS [NOT]
          NULL testen:
        
mysql> SELECT 0 IS NULL, 0 IS NOT NULL, '' IS NULL, '' IS NOT NULL;
+-----------+---------------+------------+----------------+
| 0 IS NULL | 0 IS NOT NULL | '' IS NULL | '' IS NOT NULL |
+-----------+---------------+------------+----------------+
|         0 |             1 |          0 |              1 |
+-----------+---------------+------------+----------------+
          Es ist also durchaus möglich, eine Null oder einen
          Leer-String in eine NOT NULL-Spalte
          einzusetzen, denn diese Werte sind in der Tat NOT
          NULL. Siehe auch
          Abschnitt A.5.3, „Probleme mit NULL-Werten“.
        
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

