【发布时间】:2013-09-10 08:43:49
【问题描述】:
让我开始吧。 我有一个带有文本行的 MySQL 表。例子... 条目 |标签 帖子1 |标签,标签1,标签4 帖子2 |标签1,标签2,标签4 我想抓取所有标签并显示标签和它的使用次数。例子... 标签 (1) 标签 1 (2) 标签 4 (2) 标签 2 (1) 我能用我目前的设置做到这一点吗?感谢您的宝贵时间。
我建立了一个名为“标签”的新表。就是这个样子……
ID | POSTID | TAG
1 1 tag1
2 1 tag2
3 2 tag5
4 3 tag2
5 3 tag2
现在,我该如何构建一个看起来像这样的列表?
tag1 (1)
tag2 (3)
tag5 (1)
【问题讨论】:
-
你应该normalize你的表,将标签存储在一个新表
tags中,这样会更容易。 -
逗号分隔列表....嗯,我祝您旅途愉快。 :)
-
如果标签是未知的,我认为没有存储过程是无法解决的。为关系数据库使用正确的结构(如@MahmoudGamal 所说)
-
绝对规范化您的表格。单独的标签表有一些优点。您当前的设置需要解析所有条目或执行解析的一些存储过程。
-
这仍然不是一个好的数据库模式。请参考我下面的留言。但是如果你想保留这个模式,你可以这样做:SELECT tag, COUNT(id) FROM tags GROUP BY tag