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

尝试使用 REPEAT SQL 函数。通过它您可以按 parent_id 从表顺序中选择联系人( REPEAT('-', parent_id), name);

于 2013-12-04T19:39:10.967 回答
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 回答