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_CONCATkesql_mode. Anda - Setel
sql_modekeANSI.
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.