2015-01-22 1 views
0

previous question을 참조하십시오.Mysql 순서 오름차순에 대한 주문 절

내 order by 절에 M_id를 추가하여 고유 한 순서를 매기도록했습니다. http://sqlfiddle.com/#!2/8f2340/3

가 지금은 DESC 순서로 문제를 직면하고있다 :

는 I는 sqlfiddle을 만들었습니다.

쿼리 결과가 예상보다 낮습니다.

SELECT `M_ID`, `CON_FRST_NM` FROM `sample_table` order by `CON_FRST_NM` LIMIT 0,60 

SELECT `M_ID`, `CON_FRST_NM` FROM `sample_table` order by `CON_FRST_NM`,`M_ID` LIMIT 0,60 

SELECT `M_ID`, `CON_FRST_NM` FROM `sample_table` order by `CON_FRST_NM`,`M_ID` ASC LIMIT 0,60 

SELECT `M_ID`, `CON_FRST_NM` FROM `sample_table` order by `CON_FRST_NM` DESC LIMIT 0,60 

아래의 쿼리에서 예상되는 결과를 얻지 못했습니다.

SELECT `M_ID`, `CON_FRST_NM` FROM `sample_table` order by `CON_FRST_NM`,`M_ID` DESC LIMIT 0,60 

제발 도와주세요.

감사합니다.

+0

예상되는 결과는 무엇입니까? –

+0

오름차순으로 정렬됩니다. –

+1

http://sqlfiddle.com/#!2/8f2340/22 –

답변

1

은 아마도, 당신은 order by의 첫 번째 키에 desc를 원하는 : diffrent 방향

SELECT `M_ID`, `CON_FRST_NM` 
FROM `sample_table` 
ORDER BY `CON_FRST_NM` DESC, `M_ID` 
LIMIT 0, 60; 
1

할 수 있습니다 다른 열에 정렬. 예 -

SELECT `M_ID`, `CON_FRST_NM` 
FROM `sample_table` 
ORDER BY `CON_FRST_NM` DESC, `M_ID` ASC 
LIMIT 0, 60; 

또는

SELECT `M_ID`, `CON_FRST_NM` 
FROM `sample_table` 
ORDER BY `CON_FRST_NM` DESC, `M_ID` DESC 
LIMIT 0, 60; 

당신이 방향을 언급하지 않는 경우

를 들어, ASC가 기본값입니다. 따라서, 귀하의 질의에 이는

SELECT `M_ID`, `CON_FRST_NM` 
FROM `sample_table` 
ORDER BY `CON_FRST_NM`, `M_ID` DESC 
LIMIT 0, 60; 

결과가 처음으로 내림차순으로 M_ID에 의해 다음 오름차순으로 CON_FRST_NM에 의해 정렬됩니다 .