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

Bagaimana CONCAT() Bekerja di MariaDB

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'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClusterControl - Manajemen Cadangan Tingkat Lanjut - mariabackup Bagian III

  2. Mengimpor Partisi InnoDB di MariaDB 10.0/10.1

  3. MariaDB JSON_QUERY() Dijelaskan

  4. MariaDB JSON_TABLE() Dijelaskan

  5. Cara Mengotomatiskan Failover Basis Data dengan ClusterControl