mysql - 从 mySQL 获取排序的不同列表

标签 mysql

目标

我想获取一份按最近更改的 FID 排序的唯一 FID 列表。在此示例表中,它应按 150、194、122

的顺序返回 FID

示例数据

ID    FID    changeDate
----------------------------------------------
1     194    2010-04-01
2     122    2010-04-02
3     194    2010-04-03
4     150    2010-04-04

我的尝试

我认为 unique 和 order by 可以解决问题。我最初尝试过:

SELECT distinct `FID` FROM `tblHistory` WHERE 1 ORDER BY changeDate desc
# Returns 150, 122, 194

使用GROUP BY具有相同的结果。我只是一个 SQL 业余爱好者,而且我有点迷茫。似乎正在发生的事情是聚合函数找到每个函数的第一次出现,然后执行排序。

有没有办法可以直接从 mySQL 获得我想要的结果,或者我是否必须获取所有数据,然后在 PHP 中对其进行排序?

最佳答案

这对我有用:

SELECT FID
FROM tblHistory
GROUP BY FID
ORDER BY MAX(changeDate) DESC;

关于mysql - 从 mySQL 获取排序的不同列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2735619/

相关文章:

mysql - 从没有变量的表中选择分层样本

php - 将两个字段插入数据库

php - 连接到数据库的下拉菜单

php - 将查询结果存储到 php 数组中以根据索引回显结果

mysql - 是否可以在MySQL中的数据库下创建数据库?

php - foreach 多维数组显示值

mysql - Zabbix 3.0 MySQL 数据库我找不到数据库/mysql schema.sql

mysql - 从 JOIN 更新列

php - 只有使用用户 ID 1 登录才能看到好友列表

php - mysql 获取结果的最佳方式