我试图在stackoverflow上搜索google。我主要看到,我们使用最大。但是,在我的记录中,它将成千行,所以它会在完成之前吃掉很多时间。Mysql通过datetime或unixtime获取用户多行记录的最新记录
基本上,我只是想通过datetime或unixtime获取最新的记录。
表中的记录,通过日期时间ASC排序:
查询:SELECT * FROM占ORDER BY日期时间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分组它们,结果总是显示的第一条记录。不是最新的,由datetime或unixtime DESC甚至添加顺序
查询:按日期时间DESC USER_ID为了SELECT * FROM帐户组;
+----------+--------+---------------------+------------+
| 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()?
问候
最多是否应始终使用?它需要一段时间才能完成上千行。 – 2013-05-09 02:20:15
@LouieMiranda。 。 。可能有其他的替代公式使用'存在',但它会是相同的想法。一千行不是很多行,所以性能应该不是什么大问题,除非你每秒钟多次运行这个查询。 – 2013-05-09 02:22:47