使用MySQL计算结果

时间:2013-05-03 04:18:46

标签: php mysql sql

我有一个存储标签列表的表。我希望能够编写一个显示用户最常使用的标记的脚本。但是,我在编写MySQL查询时遇到了麻烦。

表格结构:

tag_id | user_id | tag
--------------------------------
1      | 1       | hiking   
2      | 1       | fishing
3      | 1       | hiking   
4      | 1       | swimming
5      | 1       | hiking   
6      | 1       | swimming

到目前为止,我只输出了所有标签:

$query= "SELECT tag FROM tags WHERE user_id='1'";

我希望结果如下:

hiking
swimming
fishing

我可以通过“Count”或其他方式使用订单来实现此目的吗?

3 个答案:

答案 0 :(得分:6)

您需要按COUNT

订购

试试这个:

SELECT tag 
  FROM tags
 GROUP BY tag
 ORDER BY COUNT(tag) DESC

输出:

╔══════════╗
║   TAG    ║
╠══════════╣
║ hiking   ║
║ swimming ║
║ fishing  ║
╚══════════╝

See this SQLFiddle

更新

您可以显示如下计数:

SELECT tag
      ,COUNT(tag) AS `COUNT`
  FROM tags
 GROUP BY tag
 ORDER BY COUNT(tag) DESC

See this SQLFiddle

答案 1 :(得分:0)

是的,根据您的最新评论,请参阅我的下方解决方案。

SELECT tag FROM tags
                     GROUP BY tag
                                  ORDER BY tag ASC,COUNT(tag)

答案 2 :(得分:0)

就像他建议添加的那样,将count(*)添加到标记列名称

  

SELECT标记,count(*)FROM标记GROUP BY标记ORDER BY COUNT(标记)DESC