我试图在stackoverflow上搜索,谷歌。我主要看到我们使用最大值。但是,根据我的记录,它将有一千行,所以它会在完成之前花费很多时间。
基本上,我只想通过 datetime 或 unixtime 获取最新记录。
表记录,按日期时间 ASC 排序:
查询:select * from accounts order by datetime ASC;
+----------+--------+---------------------+------------+
| user_id | status | datetime | unixtime |
+----------+--------+---------------------+------------+
| 14254047 | 1 | 2013-03-27 01:25:12 | 1364343912 |
| 14254270 | 1 | 2013-03-27 09:36:58 | 1364373418 |
| 14254619 | 1 | 2013-03-27 16:07:04 | 1364396824 |
| 14254047 | 0 | 2013-05-08 07:20:39 | 1367990439 |
| 14254270 | 0 | 2013-05-09 04:01:36 | 1368064896 |
| 14254619 | 0 | 2013-05-09 04:01:36 | 1368064896 |
+----------+--------+---------------------+------------+
当我按 user_id 对它们进行分组时,结果总是显示第一条记录。不是最新的,甚至按日期时间或 unixtime DESC 添加顺序
查询:select * from accounts group by user_id order by datetime DESC;
+----------+--------+---------------------+------------+
| user_id | status | datetime | unixtime |
+----------+--------+---------------------+------------+
| 14254047 | 1 | 2013-03-27 01:25:12 | 1364343912 |
| 14254270 | 1 | 2013-03-27 09:36:58 | 1364373418 |
| 14254619 | 1 | 2013-03-27 16:07:04 | 1364396824 |
+----------+--------+---------------------+------------+
我想要的结果如下:
+----------+--------+---------------------+------------+
| user_id | status | datetime | unixtime |
+----------+--------+---------------------+------------+
| 14254047 | 0 | 2013-05-08 07:20:39 | 1367990439 |
| 14254270 | 0 | 2013-05-09 04:01:36 | 1368064896 |
| 14254619 | 0 | 2013-05-09 04:01:36 | 1368064896 |
+----------+--------+---------------------+------------+
不使用 MAX() 的最佳方法是什么?
问候