Heim > Datenbank > MySQL-Tutorial > Wie gehe ich mit NULL-Werten um, wenn Strings in MySQL verkettet werden?

Wie gehe ich mit NULL-Werten um, wenn Strings in MySQL verkettet werden?

Susan Sarandon
Freigeben: 2025-01-05 04:58:10
Original
517 Leute haben es durchsucht

How to Handle NULL Values When Concatenating Strings in MySQL?

Umgang mit NULL-Werten in MySQL CONCAT

Beim Verketten mehrerer Felder in MySQL mithilfe der CONCAT()-Funktion kann das Ergebnis wie folgt aussehen NULL, wenn eines der Felder NULL-Werte enthält. Dies kann zu unerwarteten Ergebnissen bei Datenabrufvorgängen führen.

Berücksichtigen Sie die folgenden Daten in der Tabelle „Geräte“:

affiliate_name  affiliate_location  model     ip             os_type    os_version 
cs1             inter               Dell     10.125.103.25   Linux      Fedora  
cs2             inter               Dell     10.125.103.26   Linux      Fedora  
cs3             inter               Dell     10.125.103.27   NULL       NULL    
cs4             inter               Dell     10.125.103.28   NULL       NULL    
Nach dem Login kopieren

Beim Ausführen der folgenden Abfrage:

SELECT CONCAT(`affiliate_name`,'-',`model`,'-',`ip`,'-',`os_type`,'-',`os_version`) AS device_name
FROM devices
Nach dem Login kopieren

Wir erhalten das folgende Ergebnis:

cs1-Dell-10.125.103.25-Linux-Fedora
cs2-Dell-10.125.103.26-Linux-Fedora
(NULL)
(NULL)
Nach dem Login kopieren

Wie wir sehen können, kehren die Zeilen 3 und 4 zurück NULL, weil entweder os_type oder os_version NULL enthält. Um dies zu verhindern, können wir die Funktion COALESCE() verwenden, um jedes Feld in den Verkettungsausdruck einzuschließen. COALESCE() nimmt zwei oder mehr Werte an und gibt den ersten Nicht-NULL-Wert oder das letzte Argument zurück, wenn alle Werte NULL sind.

Daher wird die geänderte Abfrage zu:

SELECT CONCAT(COALESCE(`affiliate_name`,''),'-',COALESCE(`model`,''),'-',COALESCE(`ip`,''),'-',COALESCE(`os_type`,''),'-',COALESCE(`os_version`,'')) AS device_name
FROM devices
Nach dem Login kopieren

Dies Die geänderte Abfrage gibt nun das gewünschte Ergebnis zurück:

cs1-Dell-10.125.103.25-Linux-Fedora
cs2-Dell-10.125.103.26-Linux-Fedora
cs3-Dell-10.125.103.27-
cs4-Dell-10.125.103.28-
Nach dem Login kopieren

Indem wir jedes Feld in COALESCE() einschließen, stellen wir sicher, dass NULL-Werte ignoriert und durch einen ersetzt werden leere Zeichenfolge, was zu einem Verkettungsergebnis ungleich NULL führt.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit NULL-Werten um, wenn Strings in MySQL verkettet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage