0

私の質問はかなり単純ですが、それに対する答えがわかりません...

次のフィールドと値を持つテーブルがあります。

カテゴリー

ID | PARENT_ID | NAME
---------------------
 1 |     0     | Cat1
 2 |     0     | Cat2
 3 |     1     | Cat3
 4 |     1     | Cat4
 5 |     3     | Cat5
 6 |     2     | Cat6
 7 |     0     | Cat7
.....

基本的に、MySQL のみを使用してデータを取得する必要があります - Parent_id で並べ替えます。また、それぞれの名前には、レベルに応じて「-」記号を追加する必要があります。
最終的には次のようになります。

ID | PARENT_ID | NAME
---------------------
 1 |     0     | Cat1
 3 |     1     | -Cat3
 5 |     3     | --Cat5
 4 |     1     | -Cat4
 2 |     0     | Cat2
 6 |     2     | -Cat6
 7 |     0     | Cat7

このようなクエリの作成方法がわかりません。parent_id で並べ替えようと考えていましたが、うまくいきません。

これを達成するために使用できる関数またはメソッドはありますか? どんなヒントでも大歓迎です。

4

2 に答える 2

0

--理由や意味はよくわかりませんが、これはあなたが求めていることを行うと思います:

select ID,PARENT_ID,concat(substring('---------------',1,NAME),NAME) as NAME
from table
order by PARENT_ID
  • 15 を超える「レベル」(または PARENT_ID > 15) がある場合は、さらに「-」を追加する必要があることに注意してください。
于 2013-12-04T19:17:54.150 に答える