在知道之前的ID元素

时间:2018-02-02 15:53:36

标签: php sql

我正在寻找一个简单的解决方案来订购SQL表。结构如下:

ID    | content | previous
------+---------+---------
12753 | blabla1 |
24985 | blabla2 |
31689 | blabla3 |
41036 | blabla4 | 12753
54985 | blabla5 |

previous列用于指示必须出现在此项之前的元素。例如,我想得到这个结果:

ID    | content | previous
------+---------+---------
12753 | blabla1 |
41036 | blabla4 | 12753
24985 | blabla2 |
31689 | blabla3 |
54985 | blabla5 |

SQL有一个简单的解决方案吗?我以为我可以使用PHP来改变数组中的位置,但我认为它太复杂了......

在第二步中,我希望能够指出元素必须是第一个。此元素在previous列中为“0”。但对于这种情况,最简单的解决方案在我看来就是PHP。

非常感谢你的帮助,

此致

2 个答案:

答案 0 :(得分:2)

以下是一种适用于一个级别的方法:

data_frame['COLUMN1'] = data_frame['COLUMN1'].apply(lambda s: s.decode('utf-8'))

答案 1 :(得分:0)

将两个ID粘在一起并使用它们来订购。当您在之前的

中使用零作为标准值时,IF(...)就在那里
select *
from test
order by concat(IF(previous=0,"",previous), id), id;

Here is a fiddle