銀の弾丸

プログラミングに関して、いろいろ書き残していければと思っております。

SQLで文字列の出現回数を調べる

f:id:takamints:20150328171035j:plain

photo credit: Illustrious company via photopin (license)


SQLで、テーブル内の文字列フィールドから、特定のキーワードの出現回数を得る方法です。

チョット考えただけでは無理だと思っておりましたが、ミソは置換と文字数でした。

全体文字数から、キーワードを削除した後の文字数を引いて、キーワードの文字数で割れば、出現回数になるんですね。

/*
 * [MySQL]テーブルtblのカラムcolから、キーワード '自転車' の出現回数を得る
 */
SET @keyword:='自転車'
SELECT (LENGTH(col) - LENGTH(REPLACE(col, @keyword, '')))
  / LENGTH(@keyword) AS CNT FROM tbl

目からウロコでした。なんか楽しい。

関連記事:

takamints.hatenablog.jp


MariaDB & MySQL全機能バイブル
技術評論社 (2015-02-05)
売り上げランキング: 8,224

参考サイト:

d.hatena.ne.jp


この記事は、以下の記事に加筆修正したものです。

docolog.cocolog-nifty.com