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 antara Homer dan Simpson .
Untuk null -alternatif yang aman, gunakan CONCAT_WS() . Fungsi itu mengabaikan null nilai, bahkan saat tidak dalam mode Oracle.
Atau, Anda dapat menggunakan IFNULL() untuk memberikan nilai (string) alternatif untuk null 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'