我正在写博客。现在我想显示作者最常用的标签。标签存储在articles表中,名为tags,komma seperated:
文章表(id | authorid | tags):
1 | 1 |足球,运动
2 | 1 |运动,网球,受伤
3 | 1 |运动,高尔夫,伤害
所以我想显示id为1的作者并显示他最常用的3个标签(来自上面显示的文章表)。在这种情况下,这将是:运动,伤害,足球。
这可能在MySql中吗?
答案 0 :(得分:5)
是的,但是更好的答案是引导您进入更“Normal”的数据库结构。
你真的需要一个db设置,如:
articles
表,tags
表,article_tags
表,其中包含标记的ID及其分配的文章。
然后,您可以通过查看article_tags
并将所有tag_id
返回article_id = ('X')
来查询每篇文章('X')的标记。
答案 1 :(得分:2)
你应该看一下database normalization - 维基百科的文章非常先进,但它会为你提供一些术语,你可以搜索这些术语以找到更多关于这个主题的文章。
基本想法是你会有另一张桌子:
table name: tags
columns: id | name
然后加入他们的表格:
table name: article_tags
columns: article_id | tag_id
然后,您将join查询中的所有数据放在一起,以显示每篇文章的标记名称。然后就可以对表格进行更高级的查询,以找出最常用的标签和最常用的标签。