我正在尝试确定是否有一种方法可以对包含开始/结束列的MySQL表的行进行排序。 (也可以被认为是父/子关系或其他链表安排)
以下是当前数据存储方式的示例:
id start finish
2 stepthree stepfour
6 stepfive stepsix
9 stepone steptwo
78 stepfour stepfive
121 steptwo stepthree
(这里的id号不相关,仅使用它们来表示任意数据的附加列)
我想按顺序排序/显示这些行,假设我总是从“stepone”开始,遍历start->像完成链一样,每个“完成”后面跟着它作为“开始”的行。
desired output
9 stepone steptwo
121 steptwo stepthree
2 stepthree stepfour
78 stepfour stepfive
6 stepfive stepsix
通常不应该有任何分支/分裂,只是一系列连续的步骤或状态。我不能使用简单的alpha排序(在我的情况下,开始和结束值是客户创建的代码),但无法找出使用SQL来订购这些代码的任何其他方式。我可以使用大多数语言以编程方式执行此操作,但只是使用SQL来执行此操作。
任何聪明的想法?
答案 0 :(得分:0)
我建议让另一个表将每个步骤映射到其优先顺序。
然后,您可以编写一个查询,按照开始步骤的优先顺序对每一行进行排序。