Heim >Datenbank >MySQL-Tutorial >Wie kann ich NULL-Werte aus MySQL SELECT-Anweisungen ausschließen?

Wie kann ich NULL-Werte aus MySQL SELECT-Anweisungen ausschließen?

Susan Sarandon
Susan SarandonOriginal
2025-01-15 16:37:43172Durchsuche

How Can I Exclude NULL Values from MySQL SELECT Statements?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn