MySql テーブルの「id」ごとに、タイトルの単語の出現回数をカウントするのを手伝ってほしいです。
テーブル Article と ExpectedResult は、http: //www.sqlfiddle.com/#!9/f985f/1 で入手できます。
前もって感謝します。
MySql テーブルの「id」ごとに、タイトルの単語の出現回数をカウントするのを手伝ってほしいです。
テーブル Article と ExpectedResult は、http: //www.sqlfiddle.com/#!9/f985f/1 で入手できます。
前もって感謝します。
それを行う1つの方法:
select a.id,
w.word,
(LENGTH(a.title) - LENGTH(REPLACE(a.title, w.word, ''))) / LENGTH(w.word) `count`
from Articles a join
(select distinct substring_index(substring_index(title,' ',n),' ',-1) word
from Articles
cross join
(select 1 n union all select 2 union all select 3 union all select 4 union all
select 5 union all select 6 union all select 7 union all select 8 union all
select 9 union all select 10 union all select 11 union all select 12) n
) w on concat(' ',a.title,' ') like concat('% ',w.word,' %')
n の値の数は、1 つのレコードに表示できる単語の最大数である必要があることに注意してください。title
ここでは 12 を使用しました。これは、提供されたデータのレコードのタイトルの単語の最大数より多いためです。より大きな数のセットが必要になる場合があります (実際のデータによって異なります)。
ここでSQLFiddle 。