2016-11-25 5 views
0

結果から一致するキーワードを別の列に取得する必要があります。Postgresql:一致するキーワードを取得

表:

| name | description  | info   | matched  | 
|---------|-------------------|-----------------|-----------------| 
| Event1 | This will be great| great experience|great,experience | 
| Event2 | great experience | great thinking |great,experience | 
| Event3 | Great match  | think   |great   | 

は、アレイ: {すばらしい、経験}

この配列では

答えて

0

上に示したように、私はマッチしたキーワードをしたい、このような何か:

select e.name, 
     e.description, 
     (select string_agg(distinct lower(m.word), ',') 
     from regexp_split_to_table(concat_ws(' ', e.description, e.info), '\s') as m(word) 
     where lower(m.word) = any(array['great','experience'])) 
from events e; 

しかしそれほど速くはない

オンライン例:http://rextester.com/UHAU52066

関連する問題