我有一个存储标签列表的表。我希望能够编写一个显示用户最常使用的标记的脚本。但是,我在编写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”或其他方式使用订单来实现此目的吗?
答案 0 :(得分:6)
您需要按COUNT
试试这个:
SELECT tag
FROM tags
GROUP BY tag
ORDER BY COUNT(tag) DESC
输出:
╔══════════╗
║ TAG ║
╠══════════╣
║ hiking ║
║ swimming ║
║ fishing ║
╚══════════╝
您可以显示如下计数:
SELECT tag
,COUNT(tag) AS `COUNT`
FROM tags
GROUP BY tag
ORDER BY COUNT(tag) DESC
答案 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