Di MariaDB, CONCAT()
adalah fungsi string bawaan yang melakukan rangkaian string pada argumennya. Ia mengembalikan string yang dihasilkan dari penggabungan argumennya.
Concatenation adalah operasi menggabungkan dua atau lebih string end-to-end.
CONCAT()
menerima satu atau lebih argumen, yang semuanya dikembalikan sebagai string gabungan tunggal.
Sintaks
Sintaksnya seperti ini:
CONCAT( str1, str2, ... )
Dimana str1, str2, …
mewakili argumen string yang akan digabungkan.
Contoh
Berikut ini contoh dasarnya:
SELECT CONCAT('Homer', 'Jay');
Hasil:
+------------------------+| CONCAT('Homer', 'Jay') |+-------------------------+| HomerJay |+------------------------+
Dalam hal ini, kami menggabungkan dua string.
Ini dia lagi, tapi kali ini kita tambahkan spasi di antaranya:
SELECT CONCAT('Homer', ' ', 'Jay');
Hasil:
+-----------------------------+| CONCAT('Homer', ' ', 'Jay') |+-----------------------------+| Homer Jay |+-----------------------------+
Dalam hal ini, kami menggabungkan tiga string.
Ini dia dengan lima:
SELECT CONCAT('Homer', ' ', 'Jay', ' ', 'Simpson');
Hasil:
+------------------------------------------------+ | CONCAT('Homer', ' ', 'Jay', ' ', 'Simpson') |+--------------------------------------- -----------------+| Homer Jay Simpson |+------------------------------------------------------ +
String Biner
Jika salah satu argumen adalah string biner, hasilnya adalah string biner:
SELECT CONCAT(BINARY 'Homer', 'Jay');
Hasil:
+-------------------------------+| CONCAT(BINARY 'Homer', 'Jay') |+-------------------------------+| HomerJay |+-------------------------------+
Kita dapat menggunakan COLLATION()
fungsi untuk memeriksa susunan hasil:
SELECT COLLATION(CONCAT(BINARY 'Homer', 'Jay'));
Hasil:
+------------------------------------------+| COLLATION(CONCAT(BINARY 'Homer', 'Jay')) |+---------------------------------- --------+| biner |+------------------------------------------+
Jika kita menghapus BINARY
operator, kami mendapatkan hasil yang berbeda:
SELECT COLLATION(CONCAT('Homer', 'Jay'));
Hasil:
+-----------------------------------+| COLLATION(CONCAT('Homer', 'Jay')) |+----------------------------------- +| utf8_general_ci |+-----------------------------------+
Juga, menurut dokumentasi MariaDB, argumen numerik dikonversi ke bentuk string biner yang setara. Anda dapat menghindari ini dengan melakukan cast tipe eksplisit (menggunakan CAST()
atau CONVERT()
).
Argumen Null
Jika ada argumen yang null
, CONCAT()
mengembalikan null
.
Namun, ada satu pengecualian:Ketika dalam mode Oracle (yaitu sql_mode=ORACLE
), sembarang null
argumen diabaikan begitu saja.
Pertama, mari kita lihat bagaimana CONCAT()
berperilaku dalam mode default.
Setel sesi kita ke mode default:
SET SESSION sql_mode=DEFAULT;
Sekarang jalankan CONCAT()
dengan null
argumen:
SELECT CONCAT('Homer', ' ', null, ' ', 'Simpson');
Hasil:
+--------------------------------------------+| CONCAT('Homer', ' ', null, ' ', 'Simpson') |+------------------------------ --------------+| NULL |+--------------------------------------------+Seperti yang diharapkan, hasilnya adalah
null
.Sekarang mari kita alihkan sesi kita ke mode Oracle:
SET SESSION sql_mode=ORACLE;
Dan sekarang mari kita jalankan
CONCAT()
sebelumnya contoh lagi:SELECT CONCAT('Homer', ' ', null, ' ', 'Simpson');
Hasil:
+--------------------------------------------+| CONCAT('Homer', ' ', null, ' ', 'Simpson') |+------------------------------ --------------+| Homer Simpson |+--------------------------------------------+Kali ini mengabaikan
null
argumen, dan menggabungkan semua non-null
. yang tersisa argumen. Jika Anda perhatikan lebih dekat, Anda akan melihat bahwa itu menggabungkan kedua spasi, jadi ada spasi ganda di antaraHomer
danSimpson
.Untuk
null
-alternatif yang aman, gunakanCONCAT_WS()
. Fungsi itu mengabaikannull
nilai, bahkan saat tidak dalam mode Oracle.Atau, Anda dapat menggunakan
IFNULL()
untuk memberikan nilai (string) alternatif untuknull
nilai (seperti string kosong).Argumen Tunggal
Memanggil
CONCAT()
dengan hanya satu argumen, cukup kembalikan argumen itu:SELECT CONCAT('Homer');
Hasil:
+-----------------+| CONCAT('Homer') |+-----------------+| Homer |+-----------------+Argumen Tidak Ada
Memanggil
CONCAT()
tanpa meneruskan argumen apa pun menghasilkan kesalahan:SELECT CONCAT();
Hasil:
ERROR 1582 (42000):Jumlah parameter salah dalam panggilan ke fungsi asli 'CONCAT'