2011-03-26 66 views
0

我有一个布局如下表:SQL计数不同?

id - tag_id - post_id 
1 - 1 - 3 
2 - 1 - 6 
3 - 1 - 2 
4 - 2 - 3 
5 - 2 - 9 
6 - 1 - 7 

我想编写发现标签被多少次引用的MySQL的声明。

我会然后使用PHP格式化结果。 tag # was referenced # times,它们将按照# times的顺序排列。

我对MySQL的能力限于非常基本的SELECT,INSERT,UPDATE和DELETE语句,所以我不确定如何去做这件事。你能帮我吗?

回答

4
select tag_id, count(*) 
from mytable 
group by tag_id 
order by count(*) desc 

这将按count(*)以降序排列您的结果,这意味着大多数帖子的标签将出现在顶行。

2

SELECT tag_id, COUNT(*) FROM table GROUP BY tag_id会给你每个标签的ID

1

要获得标签和职位数的计数每个标签都有,按降序排列,您可以使用下面的查询:

select tag_id, count(*) as num 
from your_table 
group by tag_id 
order by count(*) desc 

(当然,如果你想同样的数据,但按升序排序,只是删除descorder by子句中)