Heim >Datenbank >MySQL-Tutorial >Wie kann ich NULL-Werte aus MySQL SELECT-Anweisungen ausschließen?
NULL-Werte in MySQL-SELECT-Abfragen herausfiltern
Frage: Wie kann ich mit MySQL SELECT-Anweisungen nur Nicht-Null-Werte abrufen?
Standard-MySQL-SELECT *
-Anweisungen umfassen alle Spalten, auch diejenigen mit NULL
-Werten. Um nur Nicht-Null-Daten abzurufen, verwenden Sie die IS NOT NULL
-Bedingung:
<code class="language-sql">SELECT * FROM your_table WHERE YourColumn IS NOT NULL;</code>
Diese Abfrage gibt Zeilen zurück, in denen YourColumn
kein NULL
enthält. MySQL unterstützt auch die Negation des nullsicheren Gleichheitsoperators, obwohl dies kein Standard-SQL ist:
<code class="language-sql">SELECT * FROM your_table WHERE NOT (YourColumn <=> NULL);</code>
Der Umgang mit mehreren Spalten erfordert eine andere Strategie. Eine Methode verwendet mehrere SELECT
-Anweisungen und UNION ALL
:
<code class="language-sql">SELECT val1 AS val FROM your_table WHERE val1 IS NOT NULL UNION ALL SELECT val2 FROM your_table WHERE val2 IS NOT NULL;</code>
Dieser Ansatz prüft jede Spalte einzeln und kombiniert die Ergebnisse. Aufgrund mehrerer Tabellenscans kann es jedoch ineffizient sein.
Um möglicherweise mehrere Scans zu vermeiden, ziehen Sie eine CASE
-Anweisung mit einem Cross-Join in Betracht:
<code class="language-sql">SELECT CASE idx WHEN 1 THEN val1 WHEN 2 THEN val2 END AS val FROM your_table CROSS JOIN (SELECT 1 AS idx UNION ALL SELECT 2) t HAVING val IS NOT NULL;</code>
Dadurch wird der erste Nicht-Null-Wert aus val1
und val2
für jede Zeile ausgewählt und der Spalte val
zugewiesen.
Das obige ist der detaillierte Inhalt vonWie kann ich NULL-Werte aus MySQL SELECT-Anweisungen ausschließen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!