0

我有一个存储标签列表的表。我希望能够编写一个脚本来显示用户最常使用的标签。但是,我在编写 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

我可以使用“计数”或其他方式来实现这一点吗?

4

3 回答 3

6

您需要订购COUNT

尝试这个:

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

输出:

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

看到这个 SQLFiddle

更新:

您可以像这样显示计数:

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

看到这个 SQLFiddle

于 2013-05-03T04:20:02.690 回答
0

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

SELECT tag FROM tags
                     GROUP BY tag
                                  ORDER BY tag ASC,COUNT(tag)
于 2013-05-03T04:24:49.773 回答
0

就像他的建议一样,只需将 , count(*) 添加到标签列名称

SELECT tag, count(*) FROM tags GROUP BY tag ORDER BY COUNT(tag) DESC

于 2013-05-03T04:38:13.230 回答