2

如果我不知道正确的术语,我很抱歉,但我们开始吧:

我有一个包含以下列和行的表:

------------------------------
| id    | parent_id  | type  |
------------------------------
| 1     | 0          | text1 |
| 2     | 1          | text2 |
------------------------------

现在我想要的是选择类型,但如果parent_id不是 0,我希望类型是它的父类型的内容 + [本身的类型]。

因此,在这种情况下,选择的输出将是:

----------------
| type         |
----------------
| text1        |
| text1[text2] |
----------------

我正在尝试使用 concat 和 if 语句进行此操作,但无法弄清楚。

你能帮我吗?

4

1 回答 1

4

尝试:

select c.id,
       case c.parent_id 
            when 0 then c.type
            else concat(p.type,'[',c.type,']')
       end as type
from mytable c
left join mytable p on c.parent_id = p.id

SQLFiddle在这里

于 2013-04-11T09:37:11.867 回答