2017-08-10 1 views
-1

Ich habe eine Tabelle wie folgt. parent_tree Spalte enthält Doppelpunkt getrennt Mutterbaum dh Großgroßeltern : Großeltern : ElternBestellung Eltern/Kind - Hierarchische Daten in SQL Tabelle

parent_tree        | name    | Type 

All Liabilities:Current Liabilities  | Salaries Payable | Liabilities 
Assets         | Current Assets  | Assets 
null         | All Liabilities  | Parent 
All Liabilities       | Current Liabilities | Parent 
null         | Assets    | Parent 
. 
. 

Frage Jetzt möchte ich eine Auswahlabfrage ausgeführt werden (wählen --- aus der Tabelle, um durch ----) zu erhalten in der folgenden Reihenfolge, dh Eltern führen und dann seine Kinder:

parent_tree        | name    | Type 

null         | All Liabilities  | Parent 
All Liabilities       | Current Liabilities | Parent 
All Liabilities:Current Liabilities  | Salaries Payable | Liabilities 
null         | Assets    | Parent 
Assets         | Current Assets  | Assets 

So ist die wichtigste Frage, was soll ich geschrieben e in Auftrag von

versuchte ich folgendes aber Ergebnis ist in der richtigen Reihenfolge nicht:

select * from table order by if(type = 'Parent', concat(coalesce(parent_tree,name), ':' ,name), parent_tree), length(parent_tree), if(type = 'Parent', 0, 1), type"; 

Antwort

0

Ich löste diese mit Abfrage nach

select * from table order by 
order by concat( if(parent_tree is null, name, concat(parent_tree, ':', name)), ':');