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