Mysql查询以获取输入的最后状态值

标签 mysql

我有一张这样的 table -

+----+---------------------+------------+---------+--------------------+
| id | check_date          | number     | status  | sid                |
+----+---------------------+------------+---------+--------------------+
|  5 | 2012-09-29 17:44:34 | 3366064235 | SUCCESS | 1348940709163284   |
|  6 | 2012-09-29 19:40:30 | 3366064235 | FAILED  | 12345678876543     |
|  7 | 2012-09-29 17:47:30 | 4466064235 | SUCCESS | 7895345678876543   |
|  8 | 2012-09-29 19:47:30 | 4466064235 | SUCCESS | 789876545678876543 |
+----+---------------------+------------+---------+--------------------+

我想获取每个号码的最后更新状态。我怎么得到这个?我尝试按 check_date desc 按编号顺序分组,但它不起作用。

最佳答案

你可以这样使用:

select t1.id, 
    t1.check_date,
    t1.number,
    t1.status
from yourtable t1
inner join
(
    select max(check_date) maxdate, number
    from yourtable
    group by number
) t2
    on t1.check_date = t2.maxdate
    and t1.number = t2.number

参见 SQL Fiddle with demo

关于Mysql查询以获取输入的最后状态值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12695352/

相关文章:

mysql - 在没有安装mysql的情况下在unix bash中运行mysql命令?

php - 第 1 页之后分页不起作用?

JavaPreparedStatement删除查询: Show Number of Rows Deleted?

javascript - 无法调用php函数

mysql - 订单记录如果在其他表

mysql - 如何在 Woocommerce 中删除具有相同产品 ID 的重复产品?

mysql - 将 Mysql 转换为 No sql 数据库

java - hibernate 所需的 C3P0 设置是什么?

mysql - 列出参与项目的所有员工的部门名称

mysql - 如何在 MySQL 中使用数组