mysql - 如何正确分组和排序

标签 mysql group-by

我在使用分组依据时无法正确排序我的结果。它似乎显示了数据库中的第一个条目,而不是组中的最新条目。

例子:

id(autoincrement) | name
1 | anne
2 | james
3 | anne
4 | brad

如您所见,我多次输入“anne”,这就是我使用分组依据的原因。然后我希望它显示最新的“anne”,即条目“3”。相反,它显示第一个“anne”(1)

我的查询

"Select * FROM TABLE GROUP BY name ORDER BY id DESC

如有任何帮助,我们将不胜感激。

最佳答案

问题是您要选择所有字段(使用 * 很少是个好主意),因此每一行都是唯一的,因此没有任何内容可以分组。

尝试:

SELECT 
  Name,
  MAX(ID)
FROM
  TABLE
GROUP BY
  Name

关于mysql - 如何正确分组和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1747474/

相关文章:

mysql - 如果我将全局 event_scheduler 关闭,运行事件会发生什么

mysql - Perl/MySQL "Query was empty"错误,可能与多线程相关

python - Django with mysql - 加载 mysqldb 模块时出错

sql - 选择同一列上的两个计数

php - 向数据库提交多个复选框值

php - 对于此类数据,最佳的数据库设计是什么

mysql - Eloquent Join 的复杂条件

python - 按 pandas 数据框分组的平均值

mysql - 按城市分组年龄

MySQL count, left join, group by 返回零行