我不是mysql的Maven,我想知道这是否可能,或者我是否应该用php来做。。。
我想按日期时间排序,但要按ID组分开
我有这张table:
(SELECT created_at, id FROM table ORDER BY created_at)
2018-07-14 23:03:57 a
2018-07-15 01:15:25 a
2018-07-15 03:02:46 a
2018-08-02 06:00:14 b
2018-08-02 06:00:35 b
2018-08-02 06:00:38 b
2018-08-02 06:01:38 c
2018-08-02 06:01:41 c
2018-08-02 06:01:44 c
我需要这样的结果:
2018-07-14 23:03:57 a
2018-08-02 06:00:14 b
2018-08-02 06:01:38 c
2018-07-15 01:15:25 a
2018-08-02 06:00:35 b
2018-08-02 06:01:41 c
2018-07-15 03:02:46 a
2018-08-02 06:00:38 b
2018-08-02 06:01:44 c
我已经尝试和搜索了这么久,现在找不到一个答案,如何实现这个只有mysql,如果这是不可能的,我将不得不做它在php。
谢谢你们!祝您有个美好的一天
编辑:我不知道如何在stackoverflow中创建一个好的表,抱歉:(
1条答案
按热度按时间rm5edbpk1#
这是可行的,但并不漂亮。工作流程基本上是这样的:
按id排序,然后在创建
包括id更改时重置的行号
在外部查询中按行号排序,然后在
查询将如下所示(我认为…未经测试):
不过,在mysql 8中,使用窗口函数可以更好地实现这一点。
我想应该这样做:
如果不是100%正确的语法,请参阅手册:https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html#function_row-数字