【发布时间】:2019-02-12 15:54:16
【问题描述】:
我在 MySQL 中有 SQL 表,其中包含以下信息:
id | prev | next
1 | 7 | 2
2 | 1 | 3
3 | 2 | 6
4 | 6 | 5
5 | 4 | null
6 | 3 | 4
7 | null | 1
我想使用 SQL 查询来按下一列升序或按上一列降序排序,其中 next 是指向下一行的指针,previous 是指向上一行的指针,所以如果我想按升序排序,例如我会得到如下结果:
id | prev | next
7 | null | 1
1 | 7 | 2
2 | 1 | 3
3 | 2 | 6
6 | 3 | 4
4 | 6 | 5
5 | 4 | null
那该怎么做呢?
更新:第一个表是按 id 排序的,但我想以我得到第二个表的方式排序,第二个表是通过下一个值产生的,所以第一行是 7 (id=7)因为 prev 为 null 而 second 为 1,因为第一行的下一列是 1,然后第三行是 2,因为 2 是第二行下一列的值,依此类推。
【问题讨论】:
-
到目前为止你尝试了什么?
-
ORDER BY next ASC或ORDER BY prev DESC -
为什么在
next列 6 中排在 4 和 5 之前? -
您使用的是哪个版本的 MySQL?
-
@JuanCarlosOropeza 第一个表是按 id 排序的,但我想以我得到第二个表的方式排序,第二个表是通过下一个值产生的,所以第一行是 7 (id=7) 因为 prev 为 null 而 second 为 1,因为第一行的下一列是 1,然后第三行是 2,因为 2 是第二行下一列的值,依此类推。
标签: mysql sql sql-order-by