Ganti Ungkapan Biasa dalam MySQL
Apabila berurusan dengan set data yang besar, selalunya menjadi perlu untuk membersihkan atau mengubah suai data berdasarkan corak tertentu. Dalam MySQL, tugas menggantikan aksara atau subrentetan dalam lajur menggunakan ungkapan biasa boleh dicapai menggunakan fungsi REGEXP_REPLACE yang lebih baharu, tersedia dalam MariaDB dan MySQL 8.0.
REGEXP_REPLACE Syntax
Sintaks fungsi REGEXP_REPLACE ialah:
REGEXP_REPLACE(col, regexp, replace)
di mana:
Contoh Penggunaan
Andaikan anda mempunyai jadual dengan lajur bernama nama fail yang mengandungi nama fail dan anda mahu mengalih keluar sebarang aksara khas (cth., digit, tanda baca) kecuali yang berikut: a-z, A-Z, ( ,), _, ., dan -. Anda boleh menggunakan fungsi REGEXP_REPLACE seperti berikut:
SELECT REGEXP_REPLACE(filename, '[^a-zA-Z0-9()_ .\-]', '')
Ini akan mengembalikan lajur baharu dengan nama fail yang diubah suai.
Pengelompokan
The Fungsi REGEXP_REPLACE juga menyokong pengumpulan, membolehkan anda melakukan penggantian yang lebih kompleks. Sebagai contoh, anda boleh menggunakan pengumpulan untuk mengekstrak bahagian corak yang dipadankan dan menggunakannya dalam rentetan gantian.
SELECT REGEXP_REPLACE("stackoverflow", "(stack)(over)(flow)", '\2 - \1 - \3')
Ini akan mengembalikan yang berikut:
over - stack - flow
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan REGEXP_REPLACE untuk Mengubah Suai Data dalam MySQL Menggunakan Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!