-1

私はこのような結果のセットを持っています

ID >> Parent
1  >> 0
2  >> 0
3  >> 0
4  >> 1
5  >> 1
6  >> 2
7  >> 1
8  >> 0 
9  >> 3
10 >> 0

親を持ち、その下にすべての子を置いてレコードを表示する方法でレコードを並べ替えたいと思います。したがって、結果は次のようになります

1  >> 0
4  >> 1
5  >> 1
7  >> 1
2  >> 0
6  >> 2
3  >> 0
9  >> 3
8  >> 0 
10 >> 0

MySQLを使用してこの順序でレコードをソートするにはどうすればよいですか?

ありがとう

4

2 に答える 2

1

MySQL は再帰クエリをサポートしていません。ただし、親が親を持つことができない場合 (サンプル データのように)、次のようなものを使用できます。

SELECT   *
FROM     mytable
ORDER BY CASE WHEN Parent=0 THEN ID ELSE Parent END, ID

ここでフィドルを参照してください。

于 2013-06-27T17:51:37.693 に答える
0

または多分...

SELECT id,COALESCE(parent,id) p FROM my_table ORDER BY p,id;
于 2013-06-27T17:54:38.937 に答える