在 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 | +-----------+--------+
注意:
此方法可靠,但有一个潜在缺点,即对于大型数据集可能会占用资源。
以上是MySQL中如何统计子字符串出现次数并按频率排序?的详细内容。更多信息请关注PHP中文网其他相关文章!