Дерево материальных путей -вывод

#mysql #sql #tree

#mysql #sql #дерево

Вопрос:

У меня есть столбец с материальными путями, такими как

 b
b1
b11  
c    
c1   
d    
e    
f    
g   
g1 
  

Как я могу сделать вывод desc таким образом (вывод desc в порядке дерева)?

 g
g1
f
e
d
c
c1
b
b1
b11
  

Ответ №1:

Вам нужно использовать функцию ascii

 create table t(col varchar(10));
insert into t
select 'b' union all
select 'b1' union all
select 'b11' union all
select 'c' union all
select 'c1' union all   
select 'd' union all    
select 'e' union all    
select 'f' union all    
select 'g' union all   
select 'g1';

select * from t 
order by 
ascii(col) desc, 
length(col) ;
  

Результат

 col
g
g1
f
e
d
c
c1
b
b1
b11
  

Ссылка на SQLFiddle http://sqlfiddle.com /#!9/eaf954/4