最常用的标签 - mysql

时间:2011-03-30 14:53:02

标签: php mysql

我正在写博客。现在我想显示作者最常用的标签。标签存储在articles表中,名为tags,komma seperated:

文章表(id | authorid | tags):

1 | 1 |足球,运动
2 | 1 |运动,网球,受伤 3 | 1 |运动,高尔夫,伤害

所以我想显示id为1的作者并显示他最常用的3个标签(来自上面显示的文章表)。在这种情况下,这将是:运动,伤害,足球。

这可能在MySql中吗?

2 个答案:

答案 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查询中的所有数据放在一起,以显示每篇文章的标记名称。然后就可以对表格进行更高级的查询,以找出最常用的标签和最常用的标签。