mysql - 获取最后 9 次出现

标签 mysql sql

我使用的是 MySQL 5.0.12,我有下表:

| post_id | price | created_at          |
|---------|-------|---------------------|
| 10      | 3.5   | 2018-06-18 07:36:34 |
| 11      | 4.8   | 2018-06-17 07:36:34 |
| 10      | 5     | 2018-06-16 07:36:34 |
| 10      | 5     | 2018-06-15 07:36:34 |
| 6       | 3.6   | 2018-06-12 07:36:34 |
| 10      | 2     | 2018-06-14 07:36:34 |
| 10      | 6     | 2018-06-13 07:36:34 |
| 10      | 9     | 2018-06-12 07:36:34 |
| 10      | 4     | 2018-06-11 07:36:34 |
| 10      | 3.6   | 2018-06-09 07:36:34 |

如您所见,post_id 10 出现了 8 次。

因此,我想获得今天日期的最后 6 次出现。

| post_id | price | created_at          |
|---------|-------|---------------------|
| 10      | 3.5   | 2018-06-18 07:36:34 |
| 10      | 5     | 2018-06-16 07:36:34 |
| 10      | 5     | 2018-06-15 07:36:34 |
| 10      | 2     | 2018-06-14 07:36:34 |
| 10      | 6     | 2018-06-13 07:36:34 |
| 10      | 9     | 2018-06-12 07:36:34 |

我知道如何选择正确的 post_id,但我很难选择今天日期的最后 6 个匹配项:

SELECT * FROM product where post_id = 10 

关于如何获取今天日期的最后 6 次出现的任何建议?

最佳答案

你会这样做:

SELECT * FROM product 
WHERE post_id = 10 
ORDER BY created_at DESC 
LIMIT 6

您按日期降序排列,这样您就可以在顶部找到最新的。并且您限制为 6 个,因此您只会得到您正在寻找的 6 个。

关于mysql - 获取最后 9 次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50905903/

相关文章:

sql - 两个日期之间不同年份的列表

php - Mysql触发器中的多个IF不起作用

php - MySQL 和 SqLite - 兼容时间戳比较

mysql - 查询执行时间较长,大约 120 秒

SQL 来识别缺失的星期

SQL Server : workers shift excluding break times

mysql - 将 SQL 查询转换为 MySQL

php - 从 clumon ""中选择结果并加入另一个表

sql - 如何使这个 SQL 查询更短?

sql - "IN"Sql Server 中的子句限制