Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Menambahkan Pemisah ke String Gabungan di MySQL – CONCAT_WS()

Di MySQL, CONCAT_WS() fungsi memungkinkan Anda untuk menambahkan pemisah ke string yang digabungkan. Jika Anda hanya menggunakan CONCAT() fungsi, Anda tidak akan memiliki pemisah (kecuali jika Anda secara eksplisit menambahkan pemisah sebagai argumen di antara setiap argumen string).

Penggunaan umum CONCAT_WS() fungsinya untuk membuat daftar yang dipisahkan koma.

Ini contohnya:

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

Hasil:

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

Dan Anda dapat menambahkan spasi di sana jika Anda mau:

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

Hasil:

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

Pemisah

Tidak ada yang mengatakan bahwa pemisah harus berupa koma. Pemisah dapat berupa string apa pun.

Ini contoh yang sama dengan yang sebelumnya, kecuali yang ini menggunakan pemisah yang berbeda.

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

Hasil:

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

Contoh Basis Data

Berikut adalah contoh mengambil data dari database, dan menggabungkan dua kolom menjadi satu, dipisahkan dengan koma:

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

Hasil:

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

Nilai NULL

Jika salah satu argumennya adalah NULL nilai, MySQL akan melewatkan nilai itu dan pemisahnya, tetapi masih akan memproses yang lain.

Contoh:

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

Hasil:

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

Pemisah Nilai NULL

Jika pemisah itu sendiri adalah NULL nilai, operasi penggabungan akan mengembalikan NULL .

Contoh:

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

Hasil:

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

Ini adalah salah satu perbedaan antara MySQL dan T-SQL (SQL Server, Azure). Dalam T-SQL, jika pemisahnya adalah NULL value, nilai string masih digabungkan, tetapi tanpa pemisah.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan MySQL 1436:Tumpukan utas diserbu, dengan kueri sederhana

  2. Kesalahan:Tablespace untuk tabel xxx ada. Harap BUANG tablespace sebelum IMPORT

  3. Kesalahan fatal:Panggilan ke fungsi yang tidak ditentukan mysql_connect()

  4. Migrasi database dari Postgres ke MySQL

  5. Koneksi MySQL melalui terowongan SSH - bagaimana cara menentukan server MySQL lainnya?