我有一个用户评论表,如:
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%的其他人。
怎么能实现这个目标?还有如何从结果集中排除介词,连词等。
答案 0 :(得分:2)
如果您有关键字列表,则可以执行以下操作:
select kw.keyword, count(*)
from t cross join keywords kw on concat(', ', t.title, ',') like concat(', ', kw.keyword, ',')
正如其他人所提到的,你有一个非关系数据库设计。标题中的关键字应存储在单独的行中,而不是以逗号分隔的列表存储。
如果您的数据很小(几十万行或更少),您可以将其放入Excel,使用text-to-columns函数,重新排列关键字,并在数据库中创建一个新的更好的表。 / p>