MySQL中的排序/排序顺序数据对?

时间:2014-02-26 20:08:11

标签: mysql sql sorting linked-list sql-order-by

我正在尝试确定是否有一种方法可以对包含开始/结束列的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来执行此操作。

任何聪明的想法?

1 个答案:

答案 0 :(得分:0)

我建议让另一个表将每个步骤映射到其优先顺序。

然后,您可以编写一个查询,按照开始步骤的优先顺序对每一行进行排序。