[MySQL]ORDER BY

Programming/SQL 2020. 2. 14. 00:56

728x90

pno : project 테이블의 no

mno : member 테이블의 no

클라이언트가 이런 요구를 했습니다. 프로젝트별로 정렬을 하되 여기에서 글을 쓴 사람이 있는 값부터 우선 정렬을 하고 없는 사람들은 그냥 no를 기준으로 정렬을 하라고...

 

21 / 5532

3 / 8026

20 / 8127

1 / 8155

4 / 0

5 / 0

... 생략 ...

 

그러면 결과는 위와 같겠네요.

보통은 `pno` DESC, `mno` ASC 이런 식으로 하면 되겠지만 칼럼 값이 0인 애들이 있습니다. 내림차순이면 상관이 없는데 하필이면 오름차순이네요. 그러면 0인 애들이 제일 상단에 가게 됩니다.

mno 칼럼 값이 0인 애들은 1000000000 이 값을 넣어 버리고 no 칼럼을 기준으로 정렬을 하면 됩니다.

 

SELECT * FROM #table ORDER BY IF(`mno` = 0, 1000000000, `no`)

반응형

'Programming > SQL' 카테고리의 다른 글

[MySQL]정렬 순서가 있는 게 먼저 나오고 없는 게 나중에...  (0) 2021.12.09
[MySQL]ORDER BY  (0) 2020.03.10
[MySQL]ORDER BY  (0) 2020.02.26
[MySQL]ORDER BY  (0) 2020.02.26
[MySQL]LIKE IN 비슷하게...  (0) 2020.02.13