sql - MySQL:如何获取不同类型的 n 个最新行

标签 sql mysql

尽可能简单地说,我有以下表结构:

日期 |类型 |标题

假设 Type 是 1-10 范围内的一个值,我在表中有 1,000 条记录,我想要最近 5 条唯一类型的记录。所以结果会是这样的:

             Date | Type | Title
2009-06-04 14:32:00 | 4 | Zeppo
2009-06-04 14:31:00 | 2 | Groucho
2009-06-04 14:30:00 | 8 | Harpo
2009-06-04 14:29:00 | 5 | Gummo
2009-06-04 14:28:00 | 3 | Chico

似乎我想要 DISTINCT 只应用于 Type 列,或者我想要一个 GROUP BY 将应用 ORDER BY 子句之后。

全部在 MySQL 4 中。

最佳答案

我错过了什么吗?简单的解决方案似乎是:

SELECT  MAX(date) AS max_date, type, title
FROM    table
GROUP BY
        type  
ORDER BY
        max_date DESC
LIMIT 5

而且它应该非常快。

关于sql - MySQL:如何获取不同类型的 n 个最新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/950628/

相关文章:

mysql - 当某些状态发生变化时,如何从日志表中获取时间戳?

php - 用同一个查询查询两个数据库

mysql - 如何使用sql语句查找每个类别的产品数量

sql - [Postgres] 的平均/组表现

mysql - mysql中多个值的交集

php - 当不同文件的内容发生变化时,如何刷新 HTML 文件?

php - 从 mysql 查询特定的 JSON 键值

sql - SELECT *和通过在Select语句中指定每一列/联合查询返回所有列之间的区别是什么?

PHP select MySQL 没有按预期插入详细的错误消息

mysql - 获取MySql中重复字段的所有字段值