Pengeluaran Substring dalam MySQL Menggunakan Pembatas
Dalam MySQL, mengekstrak subrentetan daripada rentetan boleh mencabar apabila pembatas (dalam kes ini, a koma) hadir. Ini kerana MySQL tidak menawarkan fungsi split khusus.
Pendekatan: Menggunakan Fungsi Ditentukan Pengguna
Seperti yang dicadangkan dalam soalan berkaitan, satu pendekatan adalah untuk memanfaatkan pengguna -fungsi yang ditetapkan untuk mencapai hasil yang diinginkan. Walau bagaimanapun, pendekatan ini memerlukan mencipta fungsi tersuai yang mengendalikan pemisahan rentetan.
Penyelesaian Alternatif: Pengekstrakan Verbose
Untuk pendekatan yang lebih terperinci tetapi cekap, pertimbangkan pertanyaan berikut:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 1), ',', -1) AS colorfirst, SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 2), ',', -1) AS colorsecond, ... SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', n), ',', -1) AS colornth FROM Product;
Pertanyaan ini menggunakan fungsi SUBSTRING_INDEX beberapa kali untuk mengekstrak subrentetan secara berurutan. Panggilan SUBSTRING_INDEX pertama mengambil subrentetan pertama daripada medan warna menggunakan koma sebagai pembatas. Panggilan SUBSTRING_INDEX seterusnya mengambil subrentetan yang tinggal daripada rentetan yang terhasil.
N dalam pertanyaan mewakili bilangan subrentetan yang dikehendaki untuk diekstrak. Contohnya, colornth akan mengembalikan subrentetan ke-n daripada medan warna.
Pendekatan ini membolehkan anda mengekstrak subrentetan tanpa menggunakan fungsi yang ditakrifkan pengguna yang kompleks. Walau bagaimanapun, ia boleh menjadi verbose untuk set data yang besar atau sejumlah besar subrentetan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Substrings dengan Cekap daripada Rentetan MySQL Menggunakan Pembatas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!