我正在写博客。现在我想要显示作者最常使用的标签。标签存储在文章表中的一个名为tags的列中,以komma分隔:
文章表(id | authorid |标签):
1|1|足球运动
2|1|运动,网球,受伤
3|1|运动、高尔夫、受伤
因此,我想显示id为1的作者,并显示他的3个最常用的标记(来自上面显示的文章表)。在这种情况下,这将是:运动,受伤,足球。
这在MySql中是可能的吗?
发布于 2011-03-30 23:00:48
是的,这是可能的,但更好的答案是引导你进入一个更"Normal“的数据库结构。
你真的需要一个如下的db设置:
Table articles、table tags、table article_tags,其中包含标记的it和分配给它的文章。
然后,您可以通过在article_tags中查找并返回所有tag_id的where article_id = ('X')来查询每个文章('X')的标签。
发布于 2011-03-30 23:13:18
你应该看看database normalization --维基百科的文章非常高级,但是它会给你提供术语,你可以搜索这些术语来找到更多关于这个主题的文章。
基本的想法是你将有另一个表:
table name: tags
columns: id | name然后有一张表来连接它们:
table name: article_tags
columns: article_id | tag_id然后,您将在一个查询中join所有数据,以便显示每篇文章的标记名。然后,可以对表进行更高级的查询,以找出文章中使用最多的标签和作者中使用最多的标签。
https://stackoverflow.com/questions/5487993
复制相似问题