mysql - 如何编写查询以从数据库表中获取最近的记录

标签 mysql database

我创建了一个表,即 table_1,它有不同的字段。我想编写一个查询 以根据时间 使用issue_priority 从列part_name1 中获取最新记录。 part_name1 列可能包含具有不同优先级的相同记录,例如 p1p2p3。在这里,我获取的记录数量较少,但如果我有 n 条记录,如何在插入的记录中获取最新的记录。

这里只是举个例子。请查看给定的图片链接

**part_name1**      **issue_priority**    **time1**

    blower              p1                 03:15:00
    reverse             p2                 03:16:18
    blower              p2                 04:11:30
    reverse             p3                 04:44:05

输出:从上表我希望输出如下所示

blower       p2
reverse      p3 

image link

最佳答案

首先需要查询每个part_name1的最晚时间。这为您提供了最大时间值。

SELECT part_name1, max(time1) as maxtime1
FROM table_1
GROUP BY part_name1;

如果您还需要表中的其他数据(例如 issue_priority),您应该使用上面的作为子查询:

SELECT t1.*
FROM table_1 t1
JOIN (
    SELECT part_name1, max(time1) as maxtime1
    FROM table_1
    GROUP BY part_name1 ) s1
ON (t1.part_name1  = s1.part_name1 AND t1.time1 = s1.maxtime1);

这将为您返回每个 part_name1 的最新行。如果需要,您可以添加更多的 LIMIT 子句。

关于mysql - 如何编写查询以从数据库表中获取最近的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55918505/

相关文章:

mysql - 获取与每行参数相关的最大值和最小值很慢

mysql - 连接 2 个有很多结果的表

mysql - 在 Hibernate 中使用注解映射表的问题

java - 更新 sqlite 中的查询

mysql - 在同一MySql实例上克隆MySQL数据库

php - 按符号计算余额

Java sql数据库登录

php - 在 MySQL 中编写子查询是一种好习惯吗?

database - cakephp 3中的多个数据库连接

php - 在数据库中存储文件的优点和缺点是什么?