Mengira Kejadian Subrentetan dan Susunan Mengikut Kekerapan dalam MySQL
Masalah:
Pangkalan data MySQL anda mengandungi medan rentetan, dan anda perlu:
Penyelesaian:
Untuk mencapai ini, anda boleh menggunakan perkara berikut kod:
SELECT (CHAR_LENGTH(str) - CHAR_LENGTH(REPLACE(str, substr, ''))) / CHAR_LENGTH(substr) AS cnt FROM table_name ORDER BY cnt DESC
Penjelasan:
Contoh Penggunaan:
mysql> select (CHAR_LENGTH('asd') - CHAR_LENGTH(REPLACE('asd', 's', ''))) / CHAR_LENGTH('s'); +-----------------------------------------------------------------+ | (CHAR_LENGTH('asd') - CHAR_LENGTH(REPLACE('asd', 's', ''))) / CHAR_LENGTH('s') | +-----------------------------------------------------------------+ | 1.0000 | +-----------------------------------------------------------------+ mysql> select host, (CHAR_LENGTH(host) - CHAR_LENGTH(REPLACE(host, 'l', ''))) / CHAR_LENGTH('l') AS cnt from user; +-----------+--------+ | host | cnt | +-----------+--------+ | 127.0.0.1 | 0.0000 | | honeypot | 0.0000 | | honeypot | 0.0000 | | localhost | 2.0000 | | localhost | 2.0000 | +-----------+--------+
Nota:
Kaedah ini boleh dipercayai tetapi mempunyai potensi kelemahan yang berpotensi menjadi intensif sumber untuk set data yang besar.
Atas ialah kandungan terperinci Bagaimana Mengira Kejadian Substring dan Susunan mengikut Kekerapan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!