【发布时间】:2018-10-07 01:35:01
【问题描述】:
我正在为正在开发的 wordpress 主题构建队列插件。我正在使用单向链表来完成此操作。每行在数据库中都有一个“previous_item_id”列,指向应该在它之前打印的行!需要一个 ODRDER BY 向导大声笑,谢谢你
当前数据库表:
ID EMAIL PREVIOUS_ITEM_ID
1 test@gmail.com NULL
2 test2@gmail.com 1
3 test3@gmail.com 4
4 test4@gmail.com 2
5 test5@gmail.com 3
如何编写一个 SQL 语句,使用 Order By 来获取 previous_item_id 的下一行,如下所示:
- 第一项应该没有
previous_item_id(哪个是第一个) - 第二个项目的previous_item_id应该是1
- 第三个项目的前一个 item_id 应该是 2
- 第四个项目的previous_item_id应该是3
您基本上将previous_item_id 设为NULL 的初始行,然后通过ID 递归地获取下一行。
order by 的输出应该打印: 应该打印什么:
test@gmail.com
test2@gmail.com
test4@gmail.com
test3@gmail.com
test5@gmail.com
【问题讨论】:
-
标签
sql server与wordpress 插件有什么关系? (仅使用与您的问题直接相关的标签) -
你的描述和你的结果不匹配。
-
怎么样?它从 null 行开始,然后需要返回第一行 previous_item_id 的行
-
你的意思是你想按以前的id订购?
-
这个问题不合逻辑。 @Gordon Linoff 是正确的。考虑您的第四个项目,即带有 EMAIL 'test3@gmail.com' 的项目,如您的描述所述,它的 PREVIOUS_ITEM_ID = 4 而不是 3。任意链表的键不会按升序排列。