3

我有一张用户评论表,例如:

id  Comments
1   The battery drains off very soon 
2   Screen Quality is very good
3   Even I have the same battery problem
4   Battery can be imporved
5   Screen goes blank sometimes...
6   Over all build is nice

因此,在上述情况下,我想找到手机中最受关注的功能。因此,我可以将结果显示为 50% 的人谈论电池,30% 的人谈论屏幕,20% 的人谈论其他。

怎样才能做到这一点?以及如何从结果集中排除介词、连词等。

4

1 回答 1

2

如果您有关键字列表,则可以执行以下操作:

select kw.keyword, count(*) 
       from t cross join keywords kw on concat(', ', t.title, ',') like concat(', ', kw.keyword, ',')

但是,正如其他人所提到的,您有一个非关系数据库设计。标题中的关键字应存储在单独的行中,而不是作为逗号分隔的列表。

如果您的数据很小(几十万行或更少),您可以将其放入 Excel,使用文本到列功能,重新排列关键字,并在数据库中创建一个新的、更好的表。

于 2013-02-22T06:29:39.147 回答