Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak dodać separator do połączonego ciągu w MySQL — CONCAT_WS()

W MySQL funkcja CONCAT_WS() funkcja umożliwia dodanie separatora do połączonych ciągów. Jeśli po prostu użyjesz CONCAT() funkcji, nie miałbyś separatora (chyba że jawnie dodałeś separator jako argument między każdym argumentem ciągu).

Powszechne użycie CONCAT_WS() funkcja polega na utworzeniu listy rozdzielanej przecinkami.

Oto przykład:

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

Wynik:

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

Możesz tam dodać spację, jeśli chcesz:

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

Wynik:

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

Separator

Nie ma nic do powiedzenia, że ​​separatorem musi być przecinek. Separatorem może być dowolny ciąg.

Oto ten sam przykład, co poprzedni, z wyjątkiem tego, że używa innego separatora.

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

Wynik:

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

Przykład bazy danych

Oto przykład pobierania danych z bazy danych i łączenia dwóch kolumn w jedną oddzieloną przecinkiem:

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

Wynik:

+---------------------------+
| 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   |
+---------------------------+

Wartości NULL

Jeśli którykolwiek z argumentów ma wartość NULL wartość, MySQL pominie tę wartość i jej separator, ale nadal będzie przetwarzać pozostałe.

Przykład:

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

Wynik:

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

Separator wartości NULL

Jeśli sam separator to NULL wartość, operacja konkatenacji zwróci NULL .

Przykład:

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

Wynik:

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

To jedna z różnic między MySQL a T-SQL (SQL Server, Azure). W T-SQL, jeśli separatorem jest NULL wartości, wartości ciągu są nadal połączone, ale bez separatora.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zoptymalizować tabele MySQL/MariaDB

  2. Nie można zwrócić wyników z procedury składowanej za pomocą kursora Pythona

  3. Jak włączyć powolny dziennik zapytań w MySQL?

  4. Python i MySql:Unicode i kodowanie

  5. Jak zaimportować plik .sql do bazy danych mysql przy użyciu PHP?