MySQLでキーワードの出現回数順に並び替える方法

MySQLの文字列フィールドに格納された文章の中にキーワードが何回出現するかを調べ、その出現回数順に並び替えてレコードを取得する方法です。

MySQLにはキーワードの出現回数を求めるような機能は用意されていないので、少し工夫が必要になります。

その方法としては、「元データの文字数」から「キーワードを削除(空白に置換)した後の文字数」を引いて、それを「キーワードの文字数」で割る「出現回数」が求められます。

出現回数順に並び替えるためのSQLは下記のような感じです。

SET @keyword:='キーワード'
SELECT (( LENGTH( col ) - LENGTH( REPLACE( col, @keyword, '' ))) / LENGTH( @keyword )) AS CNT FROM tbl ORDER BY CNT DESC;

以上、参考になれば幸いです。

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

フォローする