SQL:如何计算包含多个关键字的行数

时间:2016-06-08 13:56:58

标签: mysql sql count group-by select-query

我有一个如下所示的数据集:

enter image description here

我想做一个选择查询,我可以手动设置关键字(例如城市,美丽,降雨,树木)并计算这些关键字出现的次数。在这种情况下,结果应为

enter image description here

1 个答案:

答案 0 :(得分:2)

假设您有一个关键字表。然后你可以这样做:

select kw.word, count(d.city)
from keywords kw left join
     dataset d
     on d.description like concat('%', kw.word, '%')
group by kw.word;

唯一的问题是部分匹配。因此,“树”将匹配关键字“树”(以及“re”和“e”等)。如果您知道没有标点符号并且可以假设单词用空格分隔,则可以使用:

select kw.word, count(d.city)
from keywords kw left join
     dataset d
     on concat(' ', d.description, ' ') like concat('% ', kw.word, ' %')
group by kw.word;