在 MySQL 中统计子字符串实例和排序结果
在 MySQL 中,您可以统计字符串字段中子字符串的出现次数并排序使用以下查询根据这些出现的频率得出结果:
SELECT (CHAR_LENGTH(str) - CHAR_LENGTH(REPLACE(str, substr, ''))) / CHAR_LENGTH(substr) AS cnt ... ORDER BY cnt DESC
此表达式计算通过将原始字符串的长度与用空字符串替换的字符串的长度之间的差除以子字符串的长度来计算子字符串的数量。然后,结果按计数降序排序。
示例:
考虑一个包含以下值的列主机的表:
'127.0.0.1' 'honeypot' 'honeypot' 'localhost' 'localhost'
要计算主机列中子字符串“l”的出现次数并按计数对结果进行排序,您可以使用以下命令查询:
SELECT host, (CHAR_LENGTH(host) - CHAR_LENGTH(REPLACE(host, 'l', ''))) / CHAR_LENGTH('l') AS cnt FROM user ORDER BY cnt DESC
结果将是:
| host | cnt | |-----------+--------| | localhost | 2.0000 | | localhost | 2.0000 | | honeypot | 0.0000 | | honeypot | 0.0000 | | 127.0.0.1 | 0.0000 |
以上是如何在 MySQL 中统计子字符串的出现次数并按频率对结果进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!