2014-07-16 2 views
0

제품이있는 테이블이 있습니다.복잡한 mySql 주문

해당 ID는 어머니의 경우 12345, 하위의 경우 12345_1, 12345_2, ...와 같습니다.

나는 어머니 내림차순을 가지고 순서대로 정렬 할

,하지만 자식 오름차순 :

12345 
12345_1 
12345_2 
12345_3 
12345_4 
12344 
12344_1 
12344_2 
12344_3 
12344_4 
12340 
12340_1 
12340_2 
12340_3 
12340_4 

어떻게 그것을 위해 절의에 의해 내 순서를 구성 할 수있다?

덕분에 당신은 밑줄 전후 부분을 정확한하는 SUBSTRING_INDEX를 사용할 수있는 많은

답변

0

:

ORDER BY SUBSTRING_INDEX(id, '_', 1) DESC, 
     IF(LOCATE('_', id), SUBSTRING_INDEX(id, '_', -1), '') ASC 

DEMO

0

이 당신의 샘플 데이터 세트에 대해 작동합니다

select your_column 
from your_table 
order by cast(substring_index(your_column,'_',1) as signed integer) desc, 
    your_column asc