Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So fügen Sie in MySQL ein Trennzeichen zu einer verketteten Zeichenfolge hinzu – CONCAT_WS()

In MySQL der CONCAT_WS() Mit der Funktion können Sie verketteten Zeichenfolgen ein Trennzeichen hinzufügen. Wenn Sie einfach den CONCAT() verwenden -Funktion hätten Sie kein Trennzeichen (es sei denn, Sie hätten explizit ein Trennzeichen als Argument zwischen jedem Zeichenfolgenargument eingefügt).

Eine übliche Verwendung von CONCAT_WS() Funktion besteht darin, eine durch Kommas getrennte Liste zu erstellen.

Hier ist ein Beispiel:

SELECT CONCAT_WS(',','Sydney', 'Australia') AS Location;

Ergebnis:

+------------------+
| Location         |
+------------------+
| Sydney,Australia |
+------------------+

Und Sie können dort ein Leerzeichen einfügen, wenn Sie möchten:

SELECT CONCAT_WS(', ','Sydney', 'Australia') AS Location;

Ergebnis:

+-------------------+
| Location          |
+-------------------+
| Sydney, Australia |
+-------------------+

Das Trennzeichen

Es gibt nichts zu sagen, dass das Trennzeichen ein Komma sein muss. Das Trennzeichen kann eine beliebige Zeichenfolge sein.

Hier ist das gleiche Beispiel wie im vorherigen, außer dass hier ein anderes Trennzeichen verwendet wird.

SELECT CONCAT_WS(' - ','Paris', 'France') AS Location;

Ergebnis:

+----------------+
| Location       |
+----------------+
| Paris - France |
+----------------+

Ein Datenbankbeispiel

Hier ist ein Beispiel für das Abrufen von Daten aus einer Datenbank und das Kombinieren von zwei Spalten zu einer, getrennt durch ein Komma:

SELECT CONCAT_WS(', ', city.Name, country.Name ) AS Location
FROM city
INNER JOIN country ON
city.CountryCode = country.Code
WHERE country.Code = 'NZL';

Ergebnis:

+---------------------------+
| Location                  |
+---------------------------+
| Auckland, New Zealand     |
| Christchurch, New Zealand |
| Manukau, New Zealand      |
| North Shore, New Zealand  |
| Waitakere, New Zealand    |
| Wellington, New Zealand   |
| Dunedin, New Zealand      |
| Hamilton, New Zealand     |
| Lower Hutt, New Zealand   |
+---------------------------+

NULL-Werte

Wenn eines der Argumente ein NULL ist Wert, überspringt MySQL diesen Wert und sein Trennzeichen, verarbeitet aber trotzdem die anderen.

Beispiel:

SELECT CONCAT_WS(', ','Auckland', NULL, 'New Zealand') AS Location;

Ergebnis:

+-----------------------+
| Location              |
+-----------------------+
| Auckland, New Zealand |
+-----------------------+

NULL-Wert-Trennzeichen

Wenn das Trennzeichen selbst ein NULL ist Wert, gibt die Verkettungsoperation NULL zurück .

Beispiel:

SELECT CONCAT_WS(NULL,'Auckland', NULL, 'New Zealand') AS Location;

Ergebnis:

+----------+
| Location |
+----------+
| NULL     |
+----------+

Dies ist einer der Unterschiede zwischen MySQL und T-SQL (SQL Server, Azure). In T-SQL, wenn das Trennzeichen ein NULL ist value, die String-Werte werden immer noch verkettet, aber ohne Trennzeichen.