Melakukan Penggantian Ungkapan Biasa dalam MySQL
Dalam MySQL, berurusan dengan rentetan dan melakukan manipulasi teks yang kompleks selalunya penting. Satu operasi biasa ialah menggantikan corak tertentu dalam rentetan, dan khususnya, berbuat demikian menggunakan ungkapan biasa. Artikel ini akan menyelidiki cara untuk melakukan penggantian ungkapan biasa dalam MySQL.
REGEXP_REPLACE: Penyelesaian MySQL untuk Penggantian Ekspresi Biasa
Dalam versi terbaru MySQL (8.0 dan ke atas ), fungsi khusus yang dikenali sebagai REGEXP_REPLACE telah diperkenalkan. Fungsi ini membolehkan penggantian langsung menggunakan ungkapan biasa. Sintaks REGEXP_REPLACE adalah seperti berikut:
REGEXP_REPLACE(input_string, regexp, replace_string)
di mana:
Contoh Penggunaan REGEXP_REPLACE
Pertimbangkan senario di mana anda mempunyai lajur bernama nama fail yang mengandungi nama fail dengan pelbagai aksara luar. Untuk mengalih keluar aksara ini menggunakan ungkapan biasa, anda boleh menggunakan pertanyaan berikut:
SELECT REGEXP_REPLACE(filename, '[^a-zA-Z0-9()_ .-]', '') FROM your_table;
Ungkapan biasa [^a-zA-Z0-9()_ .-] sepadan dengan mana-mana aksara yang bukan aksara abjad angka, kurungan, garis bawah, noktah atau tanda sempang. Rentetan kosong dalam REGEXP_REPLACE menunjukkan bahawa aksara yang dipadankan harus dialih keluar.
Pengumpulan dalam REGEXP_REPLACE
Fungsi REGEXP_REPLACE juga menyokong pengumpulan ungkapan biasa, membenarkan penggantian yang kompleks. Sebagai contoh, pertanyaan berikut menyusun semula perkataan "stackoverflow" dengan menggantikan timbunan dan bahagian atas dengan sempang:
SELECT REGEXP_REPLACE("stackoverflow", "(stack)(over)(flow)", "\2 - \1 - \3")
Hasil pertanyaan ini ialah "over - stack - flow".
Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan ungkapan biasa untuk menggantikan rentetan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!