MySQL で部分文字列の出現をカウントし、結果を頻度で並べ替えるにはどうすればよいですか?

DDD
リリース: 2024-11-14 17:55:02
オリジナル
428 人が閲覧しました

How to Count Substring Occurrences and Order Results by Frequency in MySQL?

MySQL での部分文字列インスタンスのカウントと結果の順序付け

MySQL では、文字列フィールド内の部分文字列の出現をカウントし、その結果を並べ替えることができます。以下を使用して、それらの発生頻度に基づいて結果を取得します。 query:

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート