MySQL对行进行计数和排序

pro*_*oee 2 mysql sorting count

在mysql中对一列数据进行计数和排序并将结果作为html列表输出的最佳方法是什么?

示例数据:

**Type**
Train
Car
Car
Car
Bus
Bus
Run Code Online (Sandbox Code Playgroud)

输出应首先按最大计数项排序:

 - car(3)
 - bus(2)
 - train (1)
Run Code Online (Sandbox Code Playgroud)

另外,这是在大桌子上做的不好的做法吗?

Mat*_*att 7

试试这个查询:

select type, count(*) from vehicles group by type order by count(*) desc
Run Code Online (Sandbox Code Playgroud)

关于:

另外,这是在大桌子上做的不好的做法吗?

这取决于你的表引擎.MyISAM非常快,具有聚合函数count(*).但是,InnoDB必须每次扫描表并计数.所以我不建议count(*)使用大型InnoDB表.相反,您可以在元表中存储"count"变量,并仅在插入/更新时更新它.