Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengira Kejadian Substring dalam Medan VARCHAR Menggunakan SQL?

Bagaimana untuk Mengira Kejadian Substring dalam Medan VARCHAR Menggunakan SQL?

Susan Sarandon
Susan Sarandonasal
2025-01-19 22:09:19685semak imbas

How to Count Substring Occurrences in VARCHAR Fields Using SQL?

Mengira Kejadian Subrentetan dengan Cekap dalam Medan SQL VARCHAR

Tugas pangkalan data selalunya melibatkan menganalisis data teks dalam medan VARCHAR. Keperluan yang kerap adalah untuk menentukan berapa kali subrentetan tertentu muncul dalam setiap medan. Sebagai contoh, pertimbangkan jadual menyimpan penerangan produk; anda mungkin mahu mengira kejadian kata kunci tertentu dalam setiap perihalan.

SQL menyediakan penyelesaian untuk ini. Pertanyaan berikut menunjukkan cara mengira tika rentetan sasaran (cth., "nilai") dalam medan VARCHAR bernama description:

<code class="language-sql">SELECT 
    title,
    description,    
    ROUND( (LENGTH(description) - LENGTH(REPLACE(description, 'value', ''))) / LENGTH('value') ) AS count
FROM <table_name></code>

Pertanyaan ini memanfaatkan fungsi REPLACE untuk mengalih keluar semua kejadian rentetan sasaran ("nilai"). Dengan membandingkan panjang rentetan asal dengan panjang selepas penggantian, dan membahagikan dengan panjang rentetan sasaran, kami mengira bilangan kejadian dengan tepat. Fungsi ROUND memastikan kiraan nombor bulat.

Melaksanakan pertanyaan ini pada jadual sampel menghasilkan keputusan berikut:

TITLE DESCRIPTION COUNT
test1 value blah blah value 2
test2 value test 1
test3 test test test 0
test4 valuevaluevaluevaluevalue 5

Kaedah ini menyediakan cara ringkas dan berkesan untuk mengira kejadian subrentetan terus dalam pertanyaan SQL anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Kejadian Substring dalam Medan VARCHAR Menggunakan SQL?. 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