使用MySQL计算结果

use*_*500 0 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
Run Code Online (Sandbox Code Playgroud)

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

$query= "SELECT tag FROM tags WHERE user_id='1'";
Run Code Online (Sandbox Code Playgroud)

我希望结果看起来像这样:

hiking
swimming
fishing
Run Code Online (Sandbox Code Playgroud)

我可以使用"Count"或其他命令来实现此目的吗?

him*_*056 6

你需要订购 COUNT

试试这个:

SELECT tag 
  FROM tags
 GROUP BY tag
 ORDER BY COUNT(tag) DESC
Run Code Online (Sandbox Code Playgroud)

输出:

????????????
?   TAG    ?
????????????
? hiking   ?
? swimming ?
? fishing  ?
????????????
Run Code Online (Sandbox Code Playgroud)

看到这个SQLFiddle

更新:

你可以显示这样的计数:

SELECT tag
      ,COUNT(tag) AS `COUNT`
  FROM tags
 GROUP BY tag
 ORDER BY COUNT(tag) DESC
Run Code Online (Sandbox Code Playgroud)

看到这个SQLFiddle