Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah Fungsi REGEXP_REPLACE MySQL Mengira Perkataan dengan Tepat dalam Lajur?

Bagaimanakah Fungsi REGEXP_REPLACE MySQL Mengira Perkataan dengan Tepat dalam Lajur?

Barbara Streisand
Barbara Streisandasal
2024-11-27 06:03:18710semak imbas

How Can MySQL's REGEXP_REPLACE Function Accurately Count Words in a Column?

Mengira Perkataan dalam MySQL: Memanfaatkan Ungkapan Biasa

Pernyataan Masalah:

Mengira bilangan perkataan dalam pangkalan data MySQL lajur menggunakan ungkapan biasa adalah tugas biasa. Walau bagaimanapun, pendekatan standard menggunakan LENGTH(nama) - LENGTH(REPLACE(nama, ' ', '') 1 gagal apabila berbilang ruang memisahkan perkataan. Soalan ini menyelidiki penyelesaian alternatif yang memanfaatkan kefungsian Regex. Ganti untuk lebih tepat keputusan.

Penyelesaian:

Pangkalan data MySQL menawarkan fungsi REGEXP_REPLACE, yang boleh digunakan sebagai fungsi yang ditentukan pengguna. Fungsi ini menyediakan Regex yang diingini. Gantikan kelakuan untuk mengira perkataan dengan pendekatan ini, pertimbangkan pertanyaan berikut:

SELECT LENGTH(REGEXP_REPLACE(name, '\s+', ' ')) - LENGTH(REGEXP_REPLACE(name, '\s+', '') +1 FROM table

Pertanyaan ini menggantikan berbilang ruang dengan satu. ruang, mengira ruang secara berkesan sebagai pembatas perkataan.

Alternatif Pertimbangan:

Untuk prestasi optimum, adalah disyorkan untuk menghalang ruang putih berganda daripada memasuki pangkalan data Selain itu, jika bilangan perkataan diakses dengan kerap, ia boleh dikira sekali dan disimpan dalam pangkalan data untuk mendapatkan semula yang lebih cepat. .

Atas ialah kandungan terperinci Bagaimanakah Fungsi REGEXP_REPLACE MySQL Mengira Perkataan dengan Tepat dalam Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn