ホームページ >データベース >mysql チュートリアル >MySQL で部分文字列の出現をカウントし、頻度で並べ替えるにはどうすればよいですか?
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 中国語 Web サイトの他の関連記事を参照してください。