MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Bagaimana CONCAT_WS() Bekerja di MariaDB

Di MariaDB, CONCAT_WS() adalah fungsi string bawaan yang merupakan singkatan dari Concatenate With Separator.

CONCAT_WS() melakukan rangkaian string pada argumennya, dengan argumen pertama menjadi pemisah untuk argumen yang tersisa.

Concatenation adalah operasi menggabungkan dua atau lebih string end-to-end.

CONCAT_WS() menerima dua argumen atau lebih (walaupun hanya memberikan dua argumen tidak akan menghasilkan apa pun yang digabungkan, karena argumen pertama menjadi pemisah, dan argumen kedua adalah string tunggal yang akan digabungkan dengan… tidak ada yang lain).

Sintaks

Sintaksnya seperti ini:

CONCAT_WS(separator,str1,str2,...) 

Dimana separator adalah string yang akan digunakan sebagai pemisah, dan str1, str2, … mewakili argumen string yang akan digabungkan.

Contoh

Berikut ini contoh dasarnya:

SELECT CONCAT_WS( ', ', 'Milk', 'Cheese', 'Bread'); 

Hasil:

+------------------------------------------------+ | CONCAT_WS( ', ', 'Susu', 'Keju', 'Roti') |+------------------------------ ---------------+| Susu, Keju, Roti |+------------------------------------------------------ --+

Dalam hal ini, kami menggabungkan tiga string menggunakan koma dan spasi sebagai pemisah.

Ini satu lagi yang menggunakan pemisah yang berbeda:

SELECT CONCAT_WS('-', 'Blue', 'Red', 'Green'); 

Hasil:

+---------------------------------------+| CONCAT_WS('-', 'Biru', 'Merah', 'Hijau') |+------------------------------ ----------+| Biru-Merah-Hijau |+-----------------------------------------+ 

CONCAT_WS() mirip dengan CONCAT() fungsi. Salah satu manfaat CONCAT_WS() melalui CONCAT() menjadi jelas ketika menggabungkan banyak string.

Untuk melakukan contoh sebelumnya dengan CONCAT() , kita perlu mengulang pemisah di antara setiap string.

Seperti ini:

SELECT CONCAT('Blue', '-', 'Red', '-', 'Green'); 

Hasil:

+------------------------------------------+| CONCAT('Biru', '-', 'Merah', '-', 'Hijau') |+-------------------------- ----------------+| Biru-Merah-Hijau |+------------------------------------------+ 

Ini bisa menjadi berat jika kita memiliki banyak string untuk digabungkan.

Tanpa Pemisah

Menyediakan string kosong saat pemisah menggabungkan string tanpa pemisah:

SELECT CONCAT_WS('', 'Blue', 'Red', 'Green'); 

Hasil:

+---------------------------------------+| CONCAT_WS('', 'Biru', 'Merah', 'Hijau') |+------------------------------- --------+| BiruMerahHijau |+---------------------------------------+

Dalam hal ini kita mendapatkan hasil yang sama dengan yang kita dapatkan saat menggunakan CONCAT() untuk menggabungkan ketiga string tersebut.

Penting untuk menyediakan pemisah, meskipun itu kosong. Gagal menyediakan pemisah akan mengakibatkan string rangkaian pertama digunakan sebagai pemisah, yang mungkin bukan yang Anda inginkan.

Contoh:

SELECT CONCAT_WS('Blue', 'Red', 'Green', 'Orange'); 

Hasil:

+------------------------------------------------+ | CONCAT_WS('Biru', 'Merah', 'Hijau', 'Oranye') |+----------------------------------------- ---------------+| MerahBiruHijauBiru Oranye |+--------------------------------------------------------+ 

Dalam hal ini, Blue adalah argumen pertama, dan akhirnya digunakan sebagai pemisah.

Menggabungkan Argumen Null

Manfaat lain yang CONCAT_WS() memiliki lebih dari CONCAT() apakah itu null -aman.

Jika salah satu argumen yang akan digabungkan adalah null , CONCAT_WS() mengabaikan mereka. CONCAT() fungsi di sisi lain, mengembalikan null (kecuali dalam mode Oracle, dalam hal ini mengabaikan null argumen).

Mari kita panggil CONCAT_WS() dengan null argumen:

SELECT CONCAT_WS('-', 'Blue', NULL, 'Green'); 

Hasil:

+---------------------------------------+| CONCAT_WS('-', 'Biru', NULL, 'Hijau') |+-------------------------------- -------+| Biru-Hijau |+----------------------------+

Seperti yang diharapkan, CONCAT_WS() melewatkan argumen nol, dan menggabungkan argumen yang tersisa.

Artinya, jika kita memberikan string kosong sebagai pemisah, kita dapat menggunakan CONCAT_WS() sebagai null -versi aman dari CONCAT() :

SELECT CONCAT_WS('', 'Blue', NULL, 'Green'); 

Hasil:

+--------------------------------------+| CONCAT_WS('', 'Biru', NULL, 'Hijau') |+--------------------------------- -----+| BiruHijau |+--------------------------------------+

Pemisah Null

Memberikan null pemisah adalah cerita yang berbeda. Melakukan ini mengembalikan null .

SELECT CONCAT_WS(NULL, 'Blue', 'Red', 'Green'); 

Hasil:

+-----------------------------------------+| CONCAT_WS(NULL, 'Biru', 'Merah', 'Hijau') |+-------------------------------- ---------+| NULL |+--------------------------------------------------+

String Biner

Jika salah satu argumen adalah string biner, hasilnya adalah string biner:

SELECT CONCAT_WS(', ', BINARY 'Apple', 'Orange'); 

Hasil:

+-------------------------------------------+| CONCAT_WS(', ', BINARY 'Apple', 'Oranye') |+--------------------------------- ----------+| Apel, Jeruk |+--------------------------------------------------+ 

Kita dapat menggunakan COLLATION() fungsi untuk memeriksa susunan hasil:

SELECT COLLATION(CONCAT_WS(', ', BINARY 'Apple', 'Orange')); 

Hasil:

+------------------------------------------------- --------+| COLLATION(CONCAT_WS(', ', BINARY 'Apple', 'Oranye')) |+------------------------------ ------------------------+| biner |+----------------------------------------------- -------+

Jika kita menghapus BINARY operator, kami mendapatkan hasil yang berbeda:

SELECT COLLATION(CONCAT_WS(', ', 'Apple', 'Orange')); 

Hasil:

+------------------------------------------------- -+| COLLATION(CONCAT_WS(', ', 'Apple', 'Oranye')) |+------------------------------- ----------------+| utf8_general_ci |+---------------------------------------------------------- +

Argumen Tunggal

Memanggil CONCAT_WS() dengan hanya satu argumen mengembalikan kesalahan:

SELECT CONCAT_WS('Blue'); 

Hasil:

ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'CONCAT_WS'

Argumen Tidak Ada

Memanggil CONCAT_WS() tanpa memberikan argumen apa pun menghasilkan kesalahan:

SELECT CONCAT_WS(); 

Hasil:

ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'CONCAT_WS'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 Cara Mengembalikan Baris yang Hanya Mengandung Karakter Non-Alfanumerik di MariaDB

  2. MariaDB JSON_SET() Dijelaskan

  3. Menjalankan MariaDB di Hybrid Cloud Setup

  4. Bagaimana CONVERT_TZ() Bekerja di MariaDB

  5. Apa yang Baru di MySQL Galera Cluster 4.0