在MySQL 中計算子字串出現次數並依頻率排序
問題:
問題:問題:
您的MySQL資料庫包含一個字串字段,你需要to:SELECT (CHAR_LENGTH(str) - CHAR_LENGTH(REPLACE(str, substr, ''))) / CHAR_LENGTH(substr) AS cnt FROM table_name ORDER BY cnt DESC
計算每個字串中特定子字串的出現次數。
依照子字串出現次數的降序對結果進行排序。說明:
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 | +-----------+--------+
CHAR_LENGTH(substr) 中出現的次數為子字串的長度。
cnt 是計算的出現次數的別名。 ORDER BY cnt DESC 子句依子字串出現次數的降序對結果進行排序。 範例用法:注意:此方法可靠,但有一個潛在缺點,即對於大型資料集可能會佔用資源。以上是MySQL中如何統計子字串出現次數並依頻率排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!