2016-11-25 52 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