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.