2013-04-11 3 views
2

미안 해요에서 데이터 출력을 선택하지만, 여기에 우리가 간다 :MySQL의 변화는 다른 행

------------------------------ 
| id | parent_id | type | 
------------------------------ 
| 1  | 0   | text1 | 
| 2  | 1   | text2 | 
------------------------------ 
다음 열과 행으로

나는 테이블이

이제 형식을 선택하는 것이지만 parent_id이 0이 아닌 경우 형식을 부모 + 형식의 콘텐츠 형식으로하고 싶습니다.

는 그래서 선택의 출력이 경우에있을 것입니다 : 나는 CONCAT과 if 문에 이것을 시도했지만,이 알아낼 수

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

.

나를 도와 줄 수 있습니까?

+0

이 정보는 직계 학급을위한 것일 뿐이며, 궁극적 인 조상을 포함하고 싶습니까? (후자는 MySQL에서 문제가있다.) –

답변

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 here.

+0

거기에'case parent_id'가 있어서는 안된다? –

+1

@MateiMihai : 예 - 이제 해결되었습니다. –

+0

최고 감사합니다! 이제 여기서도 할 수 있습니까? 또는 if 문으로 인해이 작업을 수행 할 수 없습니까? – BonifatiusK