Apabila bekerja dengan pangkalan data hubungan seperti MySQL, menggabungkan data daripada berbilang lajur menjadi satu rentetan adalah tugas biasa. Proses ini dikenali sebagai penggabungan rentetan. Dalam MySQL, terdapat beberapa cara untuk mencapai ini, masing-masing mempunyai nuansa dan kelebihan tersendiri.
Satu pendekatan biasa ialah menggunakan pengendali. Walau bagaimanapun, tidak seperti kebanyakan sistem pengurusan pangkalan data lain yang menandakan gabungan rentetan, MySQL menyimpan simbol ini untuk operasi aritmetik. Untuk menggabungkan rentetan dalam MySQL, fungsi CONCAT() mesti digunakan.
Untuk menggambarkan, katakan kita mempunyai jadual pelajar dengan lajur first_name dan last_name. Untuk menggabungkan lajur ini ke dalam satu lajur bernama Nama, pertanyaan berikut boleh digunakan:
SELECT CONCAT(first_name, ' ', last_name) AS Name FROM test.student;
Fungsi CONCAT() menerima bilangan argumen yang berubah-ubah, yang digabungkan menjadi satu rentetan. Aksara ruang (' ') antara first_name dan last_name bertindak sebagai pemisah.
Sebagai alternatif, MySQL menawarkan fungsi CONCAT_WS() (Concatenate With Separator). Fungsi ini ialah bentuk khusus CONCAT(), di mana hujah pertama digunakan sebagai pemisah:
SELECT CONCAT_WS(' ', first_name, last_name) FROM test.student;
Akhir sekali, perlu diperhatikan bahawa MySQL menyediakan pilihan untuk merawat || operator sebagai operator penggabungan rentetan dan bukannya sinonim untuk OR. Ini boleh dicapai dengan mendayakan mod SQL PIPES_AS_CONCAT:
SET sql_mode = PIPES_AS_CONCAT;
Ini membolehkan anda menulis pertanyaan seperti:
SELECT first_name || last_name AS Name FROM test.student;
Walau bagaimanapun, adalah penting untuk memastikan anda memahami sepenuhnya implikasi daripada mengubah mod SQL, kerana ia boleh menjejaskan aspek lain dalam pangkalan data anda.
Atas ialah kandungan terperinci Bagaimana untuk menggabungkan rentetan dengan cekap dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!