mysql,连接两个相邻的行

drkbr07n  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(240)

我正在mysql中努力完成一项简单的任务。我有一张时间表

ID |   Time   | Task
--------------------- 
1  | 12:00:00 | task1
2  | 12:13:00 | task2
3  | 10:16:00 | task0

作为列。条目不按时间排序。现在我想要一个

ID |   From   |  Till    | Task
--------------------------------
3  | 10:16:00 | 12:00:00 | task0
1  | 12:00:00 | 12:13:00 | task1
2  | 12:13:00 |          | task2

我想,这应该很简单,但我还没弄明白。期待任何建议。谢谢您!

oewdyzsn

oewdyzsn1#

尝试此查询:

create table tbl(ID int, `Time` time, Task varchar(10));
insert into tbl values
(1, '12:00:00', 'task1'),
(2, '12:13:00', 'task2'),
(3, '10:16:00', 'task0');

select @t := cast(null as time);

select id, task, start, end from (
  select id, @t `end`, @t := `time`, `time` `start`, task from tbl
  order by `time` desc
) a;

相关问题