1

テーブルに次の構造があるとします。

+-------------+----------------+-----------+
| category_id | name           | parent_id |
+-------------+----------------+-----------+
|           1 | foo            |         0 |
|           2 | bar            |         0 |
|           3 | baz            |         1 |
|           4 | test           |         2 |
|           5 | test1          |         3 |
|           6 | test2          |         5 |
+-------------+----------------+-----------+

誰かが次の出力を達成するためのポインタを持っていますか?

foo
bar
foo > baz
bar > test
baz > test1
baz > test 1 > test2

スキーマが役立つ場合は変更してもかまいませんが、データを保存するのに最適な方法かどうかわかりませんか?

ありがとう

4

3 に答える 3

2

親で並べ替えてから、名前で並べ替えることができます。

SELECT * FROM category ORDER BY parent_id, name

これにより、レベル (親) に従って、名前順に並べられたすべてのカテゴリが返されます。

于 2012-04-20T20:02:00.190 に答える
1

ネストされたセット モデルは、単純な親子関係よりも実装が少し複雑ですが、このような問題を解決するのに役立ちます。

于 2012-04-20T20:04:26.043 に答える
1

ネストされたセットを見たいと思うかもしれません

于 2012-04-20T20:06:57.560 に答える