MySQL mendukung penggunaan operator rangkaian pipa (||
) untuk menggabungkan operandnya. Namun, Anda harus mengaktifkannya terlebih dahulu.
Secara default, MySQL memperlakukan ||
sebagai logika OR
operator (meskipun perawatan ini saat ini tidak digunakan lagi). Namun, standar ANSI mengharuskan ||
adalah operator gabungan. Mungkin Anda memiliki kode yang sudah menggunakan operator penyambungan pipa, dan Anda lebih suka tidak melanjutkan dan mengubah kode untuk menggunakan CONCAT()
fungsi.
Untungnya, MySQL memberi kita kemampuan untuk menentukan apakah akan memperlakukannya sebagai OR
logis operator atau operator gabungan.
Anda dapat mengaktifkan ||
sebagai operator gabungan dengan menyetel opsi yang berlaku di sql_mode
.
Anda memiliki dua opsi:
- Tambahkan
PIPES_AS_CONCAT
kesql_mode
. Anda - Setel
sql_mode
keANSI
.
Opsi 1
Di sini, saya menambahkan PIPES_AS_CONCAT
ke sql_mode
saya :
SET sql_mode=(SELECT CONCAT(@@sql_mode,',PIPES_AS_CONCAT'));
Memang benar bahwa saya bisa saja pergi sql_mode = 'PIPES_AS_CONCAT'
, tapi saya akan kehilangan semua opsi yang ada. Menggunakan teknik di atas memastikan bahwa saya tidak kehilangan opsi yang ada.
Opsi 2
Cara lain untuk melakukannya adalah dengan mengatur sql_mode
ke ANSI
:
SET sql_mode='ANSI';
ANSI
mode mengubah sintaks dan perilaku agar lebih sesuai dengan SQL standar.
Periksa sql_mode
your
Anda dapat memeriksa sql_mode
seperti ini:
SELECT @@sql_mode;
Hasil:
REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,ANSI
Itulah hasil yang saya dapatkan setelah mengubah ke ANSI
mode. Kita dapat melihat PIPES_AS_CONCAT
termasuk dalam daftar opsi.
Contoh Penggabungan
Setelah mengatur sql_mode
menggunakan salah satu teknik di atas, sekarang kita dapat menggunakan ||
sebagai operator rangkaian pipa:
SELECT 'Homer' || 'Symptom';
Hasil:
HomerSymptom
Jika kami tidak mengaktifkan operator penyambungan pipa, kemungkinan besar kami akan mendapatkan hasil yang tidak terduga, dengan peringatan.