Rumah >pangkalan data >tutorial mysql >Bagaimana Mengira Kejadian Substring dan Susunan mengikut Kiraan dalam MySQL?

Bagaimana Mengira Kejadian Substring dan Susunan mengikut Kiraan dalam MySQL?

Barbara Streisand
Barbara Streisandasal
2024-11-14 15:16:02448semak imbas

How to Count Substring Occurrences and Order by Count in MySQL?

Mengira Kejadian Subrentetan dalam MySQL dan Menyusun Mengikut Kiraan

Dalam MySQL, mencari bilangan kejadian subrentetan dalam lajur rentetan dan menyusun keputusan berdasarkan kiraan itu boleh dicapai melalui gabungan manipulasi rentetan dan fungsi agregat. Untuk menangani cabaran ini, mari kita mendalami penyelesaiannya:

Pertanyaan di bawah memanfaatkan fungsi CHAR_LENGTH() dan REPLACE() untuk mengira bilangan kejadian subrentetan:

SELECT (CHAR_LENGTH(str) - CHAR_LENGTH(REPLACE(str, substr, ''))) / CHAR_LENGTH(substr) AS cnt
  • CHAR_LENGTH(str) menentukan panjang keseluruhan rentetan.
  • CHAR_LENGTH(REPLACE(str, substr, '')) mengira panjang rentetan selepas menggantikan semua kejadian subrentetan dengan rentetan kosong, dengan berkesan menghasilkan dalam panjang rentetan tanpa subrentetan.
  • Dengan menolak yang terakhir daripada yang pertama dan membahagikan dengan panjang subrentetan, kami memperoleh kiraan kejadian subrentetan.

Untuk susun lagi keputusan dalam susunan menurun bagi kiraan subrentetan, tambahkan yang berikut:

ORDER BY cnt DESC

Ini akan membentangkan data yang diisih mengikut bilangan kejadian subrentetan, dengan kiraan tertinggi muncul dahulu.

Contoh penggunaan pertanyaan ini:

SELECT host, (CHAR_LENGTH(host) - CHAR_LENGTH(REPLACE(host, 'l', ''))) / CHAR_LENGTH('l') AS cnt
FROM user
ORDER BY cnt DESC

Pertanyaan ini mendapatkan semula semua hos unik daripada jadual pengguna, mengira kejadian subrentetan 'l' dalam setiap hos dan menyusun keputusan mengikut kiraan, memaparkan hos dengan paling banyak kejadian 'l' di bahagian atas.

Atas ialah kandungan terperinci Bagaimana Mengira Kejadian Substring dan Susunan mengikut Kiraan dalam MySQL?. 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