我有一个包含以下列的mysql表:id,text,keywords。
ID是一个ID。文字是标题。关键字是此格式的代码列表:tag1 tag2 tag3
。
如何获取列中最常用的关键字列表?例如。如果我想从表格中的所有项目构建标签云。
答案 0 :(得分:4)
有办法做你想做的事。但这并不简单。您在此数据库中组织关键字的方式会引起很多麻烦。您应该尝试normalize数据。
也许不是这样:
id text keywords
1 bob he she it
2 thing white yellow hello
为关键字提供单独的表格:
id keyword
1 he
1 she
2 white
2 yellow
这样,找到你想要的东西会更简单:
select count(keyword) as num from `keywords` group by keyword order by num desc
答案 1 :(得分:0)
一种简单的方法是创建一个数组,其中每个键都是tag#
。每个密钥的值是tag#
出现在数据库中的次数;这将涉及遍历数据库中的每个标记。
答案 2 :(得分:0)
您可能最好还原规范化数据库表。也许是这样的:
Items table : id, text
Tags table : id, text
items_tags table: item_id, tag_id
通过这种方式,您可以将多个标记与每个项目相关联,并且标记计数的查询变得简单。