- 1 1. Einführung
- 2 2. Was ist die IFNULL-Funktion?
- 3 3. Praktische Beispiele für die IFNULL-Funktion
- 4 3.5 Platzieren Sie NULL-Werte am Ende in ORDER BY
- 5 4. Unterschiede zwischen IFNULL und COALESCE
- 6 5. NULL-Behandlungsfunktionen in Datenbanken außer MySQL
- 7 6. Häufig gestellte Fragen (FAQ)
- 7.1 Q1. Sind die IFNULL‑Funktion und die NVL‑Funktion identisch?
- 7.2 Q2. Was ist der Unterschied zwischen IFNULL und COALESCE?
- 7.3 Q3. Kann IFNULL mit anderen Datentypen als Zahlen verwendet werden?
- 7.4 Q4. Reduziert die Verwendung von IFNULL die Performance?
- 7.5 Q5. Können Sie CASE anstelle von IFNULL verwenden?
- 7.6 Q6. Kann IFNULL in einer WHERE‑Klausel verwendet werden?
- 7.7 Zusammenfassung
- 8 7. Fazit
1. Einführung
Beim Arbeiten mit Datenbanken ist das Behandeln von NULL-Werten ein kritischer Punkt.
Insbesondere ist es nicht ungewöhnlich, dass Personen, die an die Oracle-Funktion NVL gewöhnt sind, feststellen, dass NVL bei der Migration zu MySQL nicht verfügbar ist.
In MySQL können Sie NULL-Werte ordnungsgemäß mit der IFNULL-Funktion anstelle von NVL behandeln.
Dieser Artikel erklärt wie man mit NULL-Werten in MySQL arbeitet im Detail, einschließlich der Verwendung von IFNULL und wie es sich von anderen NULL-Behandlungsfunktionen unterscheidet.
1.1 Was ist ein NULL-Wert?
In Datenbanken bedeutet NULL „kein Wert wurde gesetzt“.
Da dies unterschiedlich zu „0“ oder einem „leeren String“ ist, kann ein unzureichendes Behandeln zu unerwarteten Fehlern oder falschen Abfrageergebnissen führen.
Zum Beispiel nehmen Sie an, Sie haben Daten wie folgt.
| ID | Name | Age |
|---|---|---|
| 1 | Yamada | 25 |
| 2 | Sato | NULL |
| 3 | Suzuki | 30 |
In den obigen Daten ist das Alter für ID „2“ (Sato) NULL.
Wenn Sie Berechnungen so durchführen, können Sie Fehler oder unbeabsichtigte Ergebnisse erhalten.
1.2 Wie MySQL NULL-Werte behandelt
2. Was ist die IFNULL-Funktion?
MySQL stellt die IFNULL-Funktion als Funktion zur Ersetzung von NULL-Werten durch einen anderen Wert bereit.
Sie spielt eine ähnliche Rolle wie die Oracle-Funktion NVL.
Durch angemessene Behandlung von NULL-Werten können Sie Berechnungsprobleme durch fehlende Daten verhindern und stabilere SQL-Abfragen erstellen.
Lassen Sie uns die grundlegende Verwendung von IFNULL genauer betrachten.
2.1 Grundlegende Syntax von IFNULL
Die grundlegende Syntax der IFNULL-Funktion lautet wie folgt.
IFNULL(expression, fallback_value)
- expression : Die Spalte oder der Wert, der auf NULL überprüft werden soll
- fallback_value : Der Wert, der zurückgegeben wird, wenn die Expression NULL ist (wenn nicht NULL, wird die Expression unverändert zurückgegeben)
Zum Beispiel betrachten Sie die folgende SQL-Anweisung.
SELECT IFNULL(NULL, 'Fallback value');
In diesem Fall wird, da NULL angegeben ist, das Ergebnis 'Fallback value'.
| Result |
|---|
| Fallback value |
Andererseits, wenn Sie einen nicht-NULL-Wert angeben, wird dieser Wert unverändert zurückgegeben.
SELECT IFNULL('Hello', 'Fallback value');
| Result |
|---|
| Hello |
2.2 Wichtige Merkmale von IFNULL
Die IFNULL-Funktion hat folgende Merkmale.
- Sie kann NULL-Werte in einen spezifischen Wert umwandeln
- Sie können einen alternativen Standardwert für Spalten setzen, die NULL enthalten können.
- Sie verwendet eine einfache Syntax
- Es ist einfacher zu schreiben als die Verwendung einer
CASE-Expression.
- Sie sollten Datentypen berücksichtigen
- Es wird empfohlen, dass die Argumente von
IFNULLdenselben Datentyp haben .
Zum Beispiel kann der folgende SQL einen Fehler verursachen.
SELECT IFNULL(100, 'Error');
Grund: Ein numerischer Typ (100) und ein String-Typ (‚Error‘) werden gemischt.
In diesem Fall sollte der Fallback-Wert auch numerisch sein.
SELECT IFNULL(100, 0);
2.3 Wann Sie IFNULL verwenden sollten
Hier sind einige praktische Situationen, in denen IFNULL nützlich ist.
- Einen Standardwert für NULL setzen
- Zum Beispiel, wenn der Bonus eines Mitarbeiters NULL ist, setzen Sie ihn auf 0.
SELECT name, IFNULL(bonus, 0) AS bonus FROM employees;
- Berechnungen mit NULL vermeiden
- Wenn Sie mit NULL so berechnen, wird das Ergebnis auch NULL.
- Die Verwendung von
IFNULL, um NULL zu vermeiden, ermöglicht die gewünschte Berechnung.SELECT name, salary, IFNULL(bonus, 0) AS bonus, salary + IFNULL(bonus, 0) AS total_income FROM employees;
- NULL in Berichten und Aggregationen ordnungsgemäß behandeln
- Wenn NULL während der Analyse vorhanden ist, können falsche Berichte erzeugt werden.
- Durch Ersetzen von NULL mit einem spezifischen Wert mit
IFNULLkönnen Sie Daten konsistent verarbeiten.
3. Praktische Beispiele für die IFNULL-Funktion
Im vorherigen Abschnitt haben wir die Grundlagen der IFNULL-Funktion erklärt.
In diesem Abschnitt führen wir konkrete Beispiele für die Verwendung mit realen Daten ein.
3.1 NULL-Werte durch einen Standardwert ersetzen
Wenn eine Tabelle NULL-Werte enthält, kann dies zu unbeabsichtigtem Verhalten führen.
Um dies zu lösen, können Sie IFNULL verwenden, um NULL durch einen Standardwert zu ersetzen.
Beispiel: Wenn der Bonus eines Mitarbeiters NULL ist, setzen Sie den Standardwert auf 0
SELECT name, IFNULL(bonus, 0) AS bonus
FROM employees;
Daten vor der Ausführung
| name | bonus |
|---|---|
| Sato | 5000 |
| Suzuki | NULL |
| Takahashi | 8000 |
Nach Anwendung von IFNULL
| name | bonus |
|---|---|
| Sato | 5000 |
| Suzuki | 0 |
| Takahashi | 8000 |
Das Ersetzen von NULL durch 0 macht Aggregation und verwandte Verarbeitung reibungsloser.
3.2 Vermeiden Sie Berechnungen, die NULL enthalten
In MySQL wird das Ergebnis einer Berechnung, die NULL enthält, zu NULL.
Daher müssen Sie IFNULL verwenden, um NULL zu vermeiden.
Beispiel: Berechnen Sie die Summe von Gehalt und Bonus
SELECT name, salary, IFNULL(bonus, 0) AS bonus, salary + IFNULL(bonus, 0) AS total_income
FROM employees;
Daten vor der Ausführung
| name | salary | bonus |
|---|---|---|
| Sato | 300000 | 5000 |
| Suzuki | 280000 | NULL |
| Takahashi | 320000 | 8000 |
Nach Anwendung von IFNULL
| name | salary | bonus | total_income |
|---|---|---|---|
| Sato | 300000 | 5000 | 305000 |
| Suzuki | 280000 | 0 | 280000 |
| Takahashi | 320000 | 8000 | 328000 |
Wenn der Bonus NULL ist, wird die Summe (salary + bonus) ebenfalls NULL,
aber durch Anwendung von IFNULL behandelt MySQL NULL als 0 und berechnet korrekt.
3.3 Ersetzen Sie NULL durch einen anderen String
Sie können einen Standardstring nicht nur für Zahlen, sondern auch festlegen, wenn der Wert NULL ist.
Beispiel: Zeigen Sie „Nicht registriert“ für Benutzer ohne E-Mail-Adresse
SELECT id, name, IFNULL(email, 'Not registered') AS email
FROM users;
Daten vor der Ausführung
| id | name | |
|---|---|---|
| 1 | Sato | satou@example.com |
| 2 | Suzuki | NULL |
| 3 | Takahashi | takahashi@example.com |
Nach Anwendung von IFNULL
| id | name | |
|---|---|---|
| 1 | Sato | satou@example.com |
| 2 | Suzuki | Not registered |
| 3 | Takahashi | takahashi@example.com |
Wenn es als NULL belassen wird, erscheint das Feld leer, aber IFNULL macht es explizit mit „Nicht registriert“.
3.4 Verwenden Sie IFNULL in einer WHERE-Klausel
Sie können IFNULL in einer WHERE-Klausel verwenden, um basierend auf Bedingungen zu filtern, die NULL-Werte enthalten.
Beispiel: Rufen Sie nur Benutzer mit NULL-Werten ab
SELECT *
FROM users
WHERE IFNULL(email, '') = '';
Dieses SQL behandelt email als '' (einen leeren String), wenn es NULL ist, und ruft nur Benutzer ab, deren E-Mail NULL ist.
3.5 Platzieren Sie NULL-Werte am Ende in ORDER BY
Normalerweise erscheinen NULL-Werte bei Verwendung von ORDER BY zuerst, aber Sie können IFNULL verwenden, um sie ans Ende zu verschieben.
Beispiel: Platzieren Sie Zeilen mit NULL-Werten am Ende
SELECT name, salary
FROM employees
ORDER BY IFNULL(salary, 0) ASC;
4. Unterschiede zwischen IFNULL und COALESCE
MySQL bietet mehrere Funktionen zur Handhabung von NULL-Werten, und IFNULL und COALESCE werden oft verglichen.
Beide ersetzen NULL-Werte durch Alternativen, aber ihre Verwendung und ihr Verhalten unterscheiden sich.
In diesem Abschnitt erklären wir die Unterschiede zwischen IFNULL und COALESCE und wie man die richtige wählt.
4.1 Was ist die COALESCE-Funktion?
Die COALESCE-Funktion gibt den ersten nicht-NULL-Wert unter mehreren Argumenten zurück.
Mit anderen Worten, während IFNULL den nicht-NULL-Wert zwischen zwei Werten auswählt,
unterscheidet sich COALESCE dadurch, dass es den ersten nicht-NULL-Wert aus mehreren Kandidaten auswählt.
Syntax
COALESCE(expr1, expr2, ... , exprN)
- Bewertet von links nach rechts und gibt den ersten nicht-NULL-Wert zurück
- Gibt NULL zurück, wenn alle Argumente NULL sind
Beispiel: Ersetzen von NULL mit COALESCE
SELECT name, COALESCE(phone, email, 'Not registered') AS contact_info
FROM customers;
In diesem Fall werden die Werte wie folgt bestimmt.
- Wenn
phonenicht NULL ist, geben Siephonezurück. - Wenn
phoneNULL ist undemailnicht NULL ist, geben Sieemailzurück. - Wenn sowohl
phoneals auchemailNULL sind, geben Sie'Nicht registriert'zurück.
4.2 Unterschiede zwischen IFNULL und COALESCE
| Comparison item | IFNULL | COALESCE |
|---|---|---|
| NULL handling | Returns the fallback value if one expression is NULL | Evaluates multiple expressions and returns the first non-NULL value |
| Number of arguments | Only 2 | 2 or more (multiple allowed) |
| Use case | Simple NULL replacement | NULL handling with priority order |
| Execution speed | Fast (compares only 2 values) | Slightly slower (evaluates multiple values in order) |
4.3 Praktische Beispiele für IFNULL und COALESCE
Beispiel 1: Einfaches NULL-Ersetzen
Mit IFNULL können Sie den nicht-NULL-Wert zwischen zwei Werten auswählen.
SELECT name, IFNULL(phone, 'Not registered') AS contact_info
FROM customers;
Ergebnis
| name | phone | contact_info |
|---|---|---|
| Sato | 080-1234-5678 | 080-1234-5678 |
| Suzuki | NULL | Not registered |
Beispiel 2: Bevorzugen Sie den ersten verfügbaren nicht-NULL-Wert
Mit COALESCE können Sie den ersten nicht-NULL-Wert abrufen.
SELECT name, COALESCE(phone, email, 'Not registered') AS contact_info
FROM customers;
Ergebnis
| name | phone | contact_info | |
|---|---|---|---|
| Sato | 080-1234-5678 | satou@example.com | 080-1234-5678 |
| Suzuki | NULL | suzuki@example.com | suzuki@example.com |
| Takahashi | NULL | NULL | Not registered |
- Wenn
phonenicht NULL ist, gibphonezurück - Wenn
phoneNULL ist undemailnicht NULL ist, gibemailzurück - Wenn sowohl
phoneals auchemailNULL sind, gib'Not registered'zurück
4.4 Wie man zwischen IFNULL und COALESCE wählt
✔ Wenn Sie IFNULL verwenden sollten
✅ Wenn Sie einen einfachen Ersatz von NULL durch einen Standardwert wollen
✅ Wenn zwei Argumente ausreichen (z. B. NULL in 0 umwandeln)
✔ Wenn Sie COALESCE verwenden sollten
✅ Wenn Sie den ersten Nicht-NULL-Wert finden wollen (z. B. phone → email → „Not registered“)
✅ Wenn Sie drei oder mehr Werte auswerten müssen
4.5 Leistungsvergleich zwischen IFNULL und COALESCE
Im Allgemeinen ist IFNULL schneller als COALESCE.
Das liegt daran, dass IFNULL nur zwei Werte auswertet, während COALESCE mehrere Werte in Reihenfolge auswertet.
Leistungstest
Wenn Sie IFNULL und COALESCE auf 1 Million Zeilen anwenden, können Sie Ergebnisse wie die folgenden sehen.
| Function | Execution time (seconds) |
|---|---|
IFNULL | 0.02 |
COALESCE | 0.05 |
➡ Bei großen Datenmengen kann IFNULL etwas schneller sein.
➡ Wenn Sie jedoch nur einen Ersatzwert benötigen, verwenden Sie IFNULL; wenn Sie mehrere Kandidaten wollen, verwenden Sie COALESCE.

5. NULL-Behandlungsfunktionen in Datenbanken außer MySQL
MySQL stellt die Funktion IFNULL zur Behandlung von NULL-Werten bereit, aber andere Datenbankmanagementsysteme (DBMS) verwenden unterschiedliche Funktionen.
In den wichtigsten Datenbanken wie Oracle, PostgreSQL und SQL Server ist es üblich, Funktionen zu nutzen, die sich von MySQL bei der NULL‑Behandlung unterscheiden.
Dieser Abschnitt erklärt wie NULL‑Werte in Datenbanken außer MySQL behandelt werden.
5.1 NULL‑Behandlung in Oracle: die NVL‑Funktion
In Oracle wird die NVL‑Funktion als Gegenstück zu MySQLs IFNULL bereitgestellt.
Die NVL‑Funktion gibt einen anderen Wert zurück, wenn der angegebene Wert NULL ist.
Syntax
NVL(expression, fallback_value)
- expression : Die Spalte oder der Wert, der auf NULL geprüft wird
- fallback_value : Der zurückzugebende Wert, wenn NULL (wenn nicht NULL, wird der Ausdruck unverändert zurückgegeben)
Beispiel
SELECT name, NVL(salary, 0) AS salary
FROM employees;
Ergebnis
| name | salary |
|---|---|
| Sato | 5000 |
| Suzuki | 0 |
| Takahashi | 8000 |
Das Verhalten von NVL ist fast identisch zu MySQLs IFNULL, sodass Sie in Oracle einfach NVL verwenden können.
5.2 NULL‑Behandlung in PostgreSQL und SQL Server: die COALESCE‑Funktion
In PostgreSQL und SQL Server wird die COALESCE‑Funktion verwendet, um NULL‑Werte durch Alternativen zu ersetzen.
Diese Funktion kann den ersten Nicht-NULL‑Wert unter mehreren Kandidaten zurückgeben.
Syntax
COALESCE(expr1, expr2, ..., exprN)
- Wertet von links nach rechts aus und gibt den ersten Nicht-NULL‑Wert zurück
- Gibt NULL zurück, wenn alle Argumente NULL sind
Beispiel
SELECT name, COALESCE(phone, email, 'Not registered') AS contact_info
FROM customers;
Ergebnis
| name | phone | contact_info | |
|---|---|---|---|
| Sato | 080-1234-5678 | satou@example.com | 080-1234-5678 |
| Suzuki | NULL | suzuki@example.com | suzuki@example.com |
| Takahashi | NULL | NULL | Not registered |
Wie oben gezeigt, ermöglicht die Verwendung von COALESCE in PostgreSQL und SQL Server eine flexiblere NULL‑Behandlung als MySQLs IFNULL.
5.3 Vergleich von NULL‑Behandlungsfunktionen über Datenbanken hinweg
| Database | NULL-handling function | Role |
|---|---|---|
| MySQL | IFNULL(expression, fallback_value) | Convert NULL to a fallback value |
| Oracle | NVL(expression, fallback_value) | Convert NULL to a fallback value (equivalent to IFNULL) |
| PostgreSQL / SQL Server | COALESCE(expr1, expr2, ...) | Return the first non-NULL value |
- Einfache NULL‑Behandlung →
IFNULL(MySQL) oderNVL(Oracle) - Den besten Wert aus mehreren Kandidaten auswählen →
COALESCE(PostgreSQL, SQL Server)
5.4 Hinweise beim Migrieren zwischen verschiedenen DBMS
Beim Migrieren von Systemen zwischen verschiedenen Datenbanken müssen Sie auf Unterschiede bei den NULL‑Behandlungsfunktionen achten.
Insbesondere beim Wechsel von Oracle zu MySQL müssen Sie NVL in IFNULL umschreiben.
Umschreibbeispiele während der Migration
- Oracle (NVL)
SELECT NVL(salary, 0) AS salary FROM employees;
- MySQL (IFNULL)
SELECT IFNULL(salary, 0) AS salary FROM employees;
- PostgreSQL / SQL Server (COALESCE)
SELECT COALESCE(salary, 0) AS salary FROM employees;
Also, weil COALESCE mehrere Argumente akzeptieren kann, ist es flexibler als Oracles NVL oder MySQLs IFNULL.
Während der Migration ist es wichtig, die richtige Funktion für die Ziel‑Datenbank zu wählen.
6. Häufig gestellte Fragen (FAQ)
Fragen zur MySQL‑Funktion IFNULL und zum Umgang mit NULL sind für Entwickler und Datenbankadministratoren wichtig.
Dieser Abschnitt fasst häufige Fragen zu IFNULL zusammen.
Q1. Sind die IFNULL‑Funktion und die NVL‑Funktion identisch?
➡ Sie bieten fast die gleiche Funktionalität, aber der Funktionsname unterscheidet sich je nach Datenbank.
| Database | NULL-handling function |
|---|---|
| MySQL | IFNULL(expression, fallback_value) |
| Oracle | NVL(expression, fallback_value) |
| PostgreSQL / SQL Server | COALESCE(expr1, expr2, ...) |
In MySQL verwendet man IFNULL; in Oracle verwendet man NVL, um NULL‑Werte in einen Ersatzwert zu konvertieren.
Q2. Was ist der Unterschied zwischen IFNULL und COALESCE?
➡ IFNULL gibt den nicht‑NULL‑Wert zwischen zwei Argumenten zurück, während
COALESCE den ersten nicht‑NULL‑Wert unter mehreren Argumenten zurückgibt.
| Function | Feature |
|---|---|
IFNULL(a, b) | If a is NULL, return b (only two arguments) |
COALESCE(a, b, c, ...) | Evaluates left to right and returns the first non-NULL value |
Beispiele
SELECT IFNULL(NULL, 'Fallback value'); -- Result: 'Fallback value'
SELECT COALESCE(NULL, NULL, 'First non-NULL value'); -- Result: 'First non-NULL value'
✔ Wann Sie IFNULL verwenden sollten
✅ Einen spezifischen Standardwert zurückgeben, wenn NULL (z. B. wenn NULL dann 0)
✅ Wenn Sie nur zwei Werte vergleichen
✔ Wann Sie COALESCE verwenden sollten
✅ Den ersten nicht‑NULL‑Wert ermitteln (z. B. Telefon → E‑Mail → Standardwert)
✅ Wenn Sie drei oder mehr Werte auswerten müssen
Q3. Kann IFNULL mit anderen Datentypen als Zahlen verwendet werden?
➡ Ja. IFNULL kann mit Zeichenketten, Datumswerten, Zahlen und mehr verwendet werden.
Beispiel 1: Verwendung von Zeichenketten
SELECT name, IFNULL(email, 'Not registered') AS email
FROM users;
Beispiel 2: Verwendung von Datumswerten
SELECT name, IFNULL(last_login, '2000-01-01') AS last_login
FROM users;
Allerdings kann das Mischen verschiedener Datentypen (wie Zahlen und Zeichenketten) Fehler verursachen, daher Vorsicht.
SELECT IFNULL(100, 'Error'); -- May cause an error due to different data types
Q4. Reduziert die Verwendung von IFNULL die Performance?
➡ Im Allgemeinen ist die Auswirkung auf die Performance minimal, aber bei der Verarbeitung großer Datenmengen kann sie eine Rolle spielen.
IFNULList normalerweise schnell, weil es nur zwei Werte prüft- Allerdings kann ein intensiver Einsatz von
IFNULLbei sehr großen Datensätzen (Millionen von Zeilen) die Indexoptimierung in manchen Fällen beeinträchtigen
🔹 Tipps zur Performance‑Optimierung
- Indizes angemessen setzen
- Abfragen wie
IFNULL(column, 0) = 100können in manchen Fällen verhindern, dass Indizes verwendet werden - Ein Ansatz ist, Werte von Anfang an mit einem geeigneten Standardwert statt NULL zu speichern
IFNULList leichter alsCOALESCE
- Da
COALESCEmehrere Werte nacheinander auswertet, kannIFNULLin vielen Fällen schneller sein
Q5. Können Sie CASE anstelle von IFNULL verwenden?
➡ Ja. Sie können ein ähnliches Verhalten mit CASE erreichen, jedoch wird es ausführlicher.
Mit IFNULL
SELECT name, IFNULL(salary, 0) AS salary
FROM employees;
Mit CASE
SELECT name,
CASE WHEN salary IS NULL THEN 0 ELSE salary END AS salary
FROM employees;
✔ IFNULL ist kompakt und einfach zu verwenden
✔ CASE unterstützt flexiblere Bedingungen (z. B. können Sie auch Nicht‑NULL‑Bedingungen einbeziehen)
Q6. Kann IFNULL in einer WHERE‑Klausel verwendet werden?
➡ Ja. IFNULL kann innerhalb einer WHERE‑Klausel verwendet werden.
Beispiel: NULL durch einen spezifischen Wert ersetzen bei der Suche
SELECT * FROM users WHERE IFNULL(status, 'Not set') = 'Not set';
Dies ruft Datensätze ab, bei denen status NULL ist.
Zusammenfassung
IFNULLundNVLhaben fast die gleiche Funktionalität, unterscheiden sich jedoch je nach DBMSIFNULLwertet 2 Werte aus;COALESCEwertet mehrere Werte aus- Funktioniert mit Zeichenketten, Datumswerten, Zahlen und mehr
- Bei großen Datensätzen sollte die Indexoptimierung berücksichtigt werden
- Sie können
CASEanstelle vonIFNULLverwenden IFNULLkann auch inWHERE‑Klauseln verwendet werden
7. Fazit
In diesem Artikel haben wir die MySQL‑Funktion IFNULL ausführlich behandelt, einschließlich des Umgangs mit NULL‑Werten, der Unterschiede zu anderen Funktionen und praktischer Beispiele.
Abschließend fassen wir kurz zusammen, was wir behandelt haben.
7.1 Was ist die IFNULL‑Funktion?
IFNULLgibt einen Ersatzwert zurück, wenn der angegebene Wert NULL ist- Syntax :
IFNULL(expression, fallback_value)
- Durch das Vermeiden von NULL können Sie Berechnungsfehler und fehlende Daten verhindern
7.2 Praktische Beispiele für IFNULL
- NULL durch einen Standardwert ersetzen (0 oder ein bestimmter String)
SELECT name, IFNULL(bonus, 0) AS bonus FROM employees;
- Berechnungen, die NULL enthalten, korrekt handhaben
SELECT name, salary + IFNULL(bonus, 0) AS total_income FROM employees;
- NULL in einen geeigneten String wie “Nicht registriert” umwandeln
SELECT id, IFNULL(email, 'Not registered') AS email FROM users;
- In
WHERE‑Klauseln verwenden, um NULL‑Werte zu filternSELECT * FROM users WHERE IFNULL(status, 'Not set') = 'Not set';
7.3 Unterschiede zwischen IFNULL und COALESCE
IFNULLgibt den nicht‑NULL‑Wert zwischen zwei Argumenten zurückCOALESCEgibt den ersten nicht‑NULL‑Wert unter mehreren Argumenten zurück- Wie man wählt
- Einfache NULL‑Behandlung →
IFNULL - Den ersten nicht‑NULL‑Wert auswählen →
COALESCE
7.4 NULL‑Behandlung in anderen DBMS
| Database | NULL-handling function |
|---|---|
| MySQL | IFNULL(expression, fallback_value) |
| Oracle | NVL(expression, fallback_value) |
| PostgreSQL / SQL Server | COALESCE(expr1, expr2, ...) |
- Oracle’s
NVList fast identisch zu MySQL’sIFNULL - PostgreSQL und SQL Server verwenden üblicherweise
COALESCE - Bei Migrationen müssen Sie die Funktionen entsprechend ersetzen
7.5 Leistung und Vorsichtsmaßnahmen für IFNULL
IFNULList leichter alsCOALESCE- Bei großen Datenmengen kann die Leistung sinken, wenn die Indexoptimierung beeinträchtigt wird
- Achten Sie darauf, dass die Datentypen konsistent bleiben (nicht numerische und string‑Typen mischen)
7.6 Abschließende Erkenntnisse
- In MySQL
IFNULLverwenden, um NULL korrekt zu behandeln - Sie können Daten verarbeiten, ohne von NULL beeinflusst zu werden
- Verstehen Sie die Unterschiede zu
COALESCEundNVLund nutzen Sie die passende Funktion - Bei Migrationen zwischen Datenbanken sollten Sie auf Unterschiede bei NULL‑Behandlungsfunktionen achten


