Melaksanakan Penggantian Ungkapan Biasa dalam MySQL
Ingin mengubah suai data dalam pangkalan data MySQL anda menggunakan ungkapan biasa? Soalan ini meneroka ketersediaan fungsi sedemikian dalam MySQL dan menyediakan penyelesaian untuk mereka yang menggunakan MariaDB atau MySQL 8.0.
Fungsi Ganti Ungkapan Biasa
Dalam MariaDB atau MySQL 8.0, fungsi REGEXP_REPLACE() menyediakan keupayaan untuk melakukan penggantian berasaskan ungkapan biasa dalam lajur pangkalan data. Sintaksnya adalah seperti berikut:
REGEXP_REPLACE(col, regexp, replace)
di mana:
Menggunakan Fungsi
Untuk menggunakan fungsi REGEXP_REPLACE(), cuma masukkannya dalam pertanyaan anda seperti yang ditunjukkan:
SELECT REGEXP_REPLACE('stackowerflow', 'ower', 'over');
Ini akan menghasilkan output:
stackoverflow
Mengumpul dalam Ungkapan Biasa
Fungsi menyokong pengelompokan dalam ungkapan biasa, membolehkan penggantian yang lebih kompleks. Sebagai contoh, pernyataan berikut menggunakan pengumpulan untuk menukar kedudukan dua perkataan yang dipadankan:
SELECT REGEXP_REPLACE("stackoverflow", "(stack)(over)(flow)", '\2 - \1 - \3')
Ini akan kembali:
over - stack - flow
Pendekatan Alternatif
Bagi pengguna yang tidak menjalankan MariaDB atau MySQL 8.0, pendekatan alternatif yang melibatkan PHP dan MySQL boleh digunakan. Kaedah ini melibatkan pemilihan data, menggunakan PHP untuk penggantian ungkapan biasa, dan kemudian mengemas kini pangkalan data. Walau bagaimanapun, ia boleh menjadi lebih rumit dan intensif prestasi daripada menggunakan fungsi REGEXP_REPLACE() khusus.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Penggantian Ungkapan Biasa dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!