Während die meisten Anwendungen über irgendeine Form von serverseitiger oder sogar clientseitiger Technologie verfügen, die verwendet werden kann, um Datenbankabfrageergebnisse herauszufiltern, die NULL
enthalten können oder leere Werte, die Verwendung einer anderen Sprache und diese zusätzliche Belastung durch die Ausführung von Code ist in der Regel kostspieliger für den Server und in der Tat weitgehend unnötig.
Stattdessen werden wir unten kurz untersuchen, wie Sie die MySQL-Engine selbst verwenden, um diese Aufgabe auszuführen, indem Sie nur die gewünschten Datensätze abrufen und diejenigen mit dem lästigen NULL
ausschließen Spalten in der Mischung.
IST NICHT NULL Vergleichsoperator
Bei weitem die einfachste und unkomplizierteste Methode, um sicherzustellen, dass die Ergebnismenge einer bestimmten Spalte nicht NULL
enthält Werten ist die Verwendung von IS NOT NULL
Vergleichsoperator.
Zum Beispiel, wenn wir alle Datensätze in unseren books
auswählen möchten Tabelle, in der der primary_author
Spalte ist nicht NULL
, könnte die Abfrage so aussehen:
SELECT
primary_author,
published_date,
title
FROM
books
WHERE
primary_author IS NOT NULL;
Denn IS NOT NULL
verhält sich wie jeder andere Komparator, er kann mit anderen WHERE
kombiniert werden -Klauseln, um Ergebnisse weiter zu filtern, genau so, als ob Sie =
verwenden würden , >
, <
, LIKE
und andere Standard-Vergleichsoperatoren.
Filtern von NULL aus mehreren Spalten
In einigen Fällen möchten Sie möglicherweise Ergebnisse abrufen, bei denen nein NULL
Werte sind in mehreren Spalten vorhanden. Zum Beispiel haben wir einige Aufzeichnungen in den books
Tabelle:
id | title | primary_author | published_date
1 | The Hobbit | Tolkien | 09-21-1937
2 | The Silmarillion | Tolkien | 09-15-1977
3 | The Name of the Wind | Rothfuss | 03-27-2007
4 | The Wise Man's Fear | Rothfuss | 03-01-2011
5 | The Doors of Stone | Rothfuss | NULL
6 | Beowulf | NULL | 01-01-1000
Beachten Sie, dass The Doors of Stone (id 5
) ist unveröffentlicht und daher das published_date
ist NULL
. Ebenso Beowulf (id 6
) – das berühmte altenglische Epos – hat keinen bekannten Autor, also primary_author
ist NULL
.
In diesem Fall möchten wir möglicherweise nach Ergebnissen suchen, die nur die ersten vier enthalten Datensätze, wodurch die letzten beiden Datensätze ausgeschlossen werden, die NULL
haben Werte entweder in primary_author
oder published_date
. Dies kann mit dieser einfachen Anweisung mit AND
durchgeführt werden mit mehreren Vergleichsoperatoren:
SELECT
primary_author,
published_date,
title
FROM
books
WHERE
(
primary_author IS NOT NULL
AND
published_date IS NOT NULL
);
Hinweis:Die Klammern sind nicht erforderlich, aber es empfiehlt sich, gruppierte Komparatoren für eine bessere Lesbarkeit einzuschließen.
Hier hast du es; ein einfacher Vergleichsoperator, der verwendet werden kann, um alle NULL
herauszufiltern Werte in Ihren Aufzeichnungen.