在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中文網其他相關文章!