Mysql 获取id为和上一个元素id为的元素的正确顺序

Mysql 获取id为和上一个元素id为的元素的正确顺序,mysql,Mysql,我想得到一个正确顺序的结果。表的每一行都有行ID和上一个元素的ID,因此应该有一个明确的顺序 SQL表: id|prev 1|0 2|1 3|2 我想到了一个简单的办法 SELECT * FROM table ORDER BY prev ASC 应该有用。但是如果我添加、删除和编辑一些信息,该表可能如下所示: id|prev 1|0 2|1 3|2 4|6 5|4 6|3 仍然有一个明确的顺序,但是上面的Select语句不起作用,因为元素6被设置为正好在元素3和4之间 我不知道如何在SQL

我想得到一个正确顺序的结果。表的每一行都有行ID和上一个元素的ID,因此应该有一个明确的顺序

SQL表

id|prev
1|0
2|1
3|2
我想到了一个简单的办法

SELECT * FROM table ORDER BY prev ASC
应该有用。但是如果我添加、删除和编辑一些信息,该表可能如下所示:

id|prev
1|0
2|1
3|2
4|6
5|4
6|3
仍然有一个明确的顺序,但是上面的Select语句不起作用,因为元素6被设置为正好在元素3和4之间


我不知道如何在SQL中获得正确的结果顺序,在本例中应该是1、2、3、6、4、5。

您应该放弃这种方法,用
sortorder
int字段替换
prev
,该字段可以根据修改需要重新生成。Ok。我之所以这么做,是因为在添加新行时,我只需更改一个元素(只需修改一个pre值)。当使用排序顺序字段时,我必须修改以下所有行……这将是支持该字段的数据库中的CONNECT BY分层查询。也许这将帮助您搜索mysql实现
更新表集sortorder=sortorder+1,其中sortorder>newsortorder
不是一个昂贵的操作。您的方法可以工作,但它只适用于非常有限的用例,可能超出了您的过度使用。好的,谢谢!