Pendekatan Alternatif Mengira Perkataan dalam MySQL Menggunakan REGEXP_REPLACE
Mengira perkataan dalam pangkalan data SQL adalah tugas biasa, tetapi ia boleh mencabar apabila penyelesaian standard tidak menghasilkan keputusan yang tepat. Artikel ini meneroka pendekatan berbeza untuk pengiraan perkataan dalam MySQL, menggunakan fungsi REGEXP_REPLACE.
Fungsi REGEXP_REPLACE, serupa dengan fungsi Regex.Replace dalam .NET/C#, membenarkan penggantian subrentetan yang sepadan dengan yang ditentukan ungkapan biasa. Dalam kes ini, matlamatnya adalah untuk menggantikan semua aksara ruang putih dengan satu ruang, dengan berkesan menghapuskan berbilang ruang antara perkataan.
Pertimbangkan pertanyaan:
SELECT LENGTH(REGEXP_REPLACE(name, '[ ]+', ' ')) - LENGTH(REGEXP_REPLACE(name, '[^ ]+', '')) + 1 FROM table
Pertanyaan ini menggantikan semua ruang kosong berturut-turut. aksara dengan satu ruang menggunakan fungsi REGEXP_REPLACE. Ia kemudian mengira perbezaan panjang antara rentetan asal dan rentetan yang diubah suai, di mana aksara bukan ruang putih telah dialih keluar. Menambah 1 pada perbezaan ini memberikan kiraan tepat bagi perkataan dalam rentetan input.
Untuk kes di mana kawalan data mungkin, pra-memproses input untuk mengalih keluar ruang putih berganda sebelum memasukkan ke dalam pangkalan data boleh meningkatkan ketepatan. Selain itu, jika akses kerap kepada bilangan perkataan diperlukan, anda disyorkan untuk mengira dan menyimpan kiraan bersama-sama data itu sendiri untuk mendapatkan semula yang cekap.
Atas ialah kandungan terperinci Bagaimanakah Fungsi REGEXP_REPLACE MySQL Boleh Digunakan untuk Pengiraan Perkataan yang Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!