小编Mar*_*ngs的帖子

如何在一次选择中获得当前和下一个更大的值?

我有一个带有列的 InnoDB 表“idtimes”(MySQL 5.0.22-log)

`id` int(11) NOT NULL,
`time` int(20) NOT NULL, [...]
Run Code Online (Sandbox Code Playgroud)

使用复合唯一键

UNIQUE KEY `id_time` (`id`,`time`)
Run Code Online (Sandbox Code Playgroud)

所以每个 id 可以有多个时间戳,每个时间戳可以有多个 id。

我正在尝试设置一个查询,在其中获取所有条目以及每个条目的下一个更大时间(如果存在),因此它应该返回,例如:

+-----+------------+------------+
| id  | time       | nexttime   |
+-----+------------+------------+
| 155 | 1300000000 | 1311111111 |
| 155 | 1311111111 | 1322222222 |
| 155 | 1322222222 |       NULL |
| 156 | 1312345678 | 1318765432 |
| 156 | 1318765432 |       NULL |
+-----+------------+------------+
Run Code Online (Sandbox Code Playgroud)

现在我到目前为止:

SELECT l.id, l.time, r.time FROM 
    idtimes AS l LEFT JOIN idtimes …
Run Code Online (Sandbox Code Playgroud)

mysql innodb select

19
推荐指数
2
解决办法
7万
查看次数

标签 统计

innodb ×1

mysql ×1

select ×1