php관련

order by로 정렬이 좀 까다로운데..고수님들 조언좀 부탁드립니다!

PHPdev 2011. 11. 18. 14:45
반응형
 질문내용
 현재 쿼리는
SELECT * FROM tableA ORDER BY cate ASC, type ASC, sort DESC

cate | id | sort | type
  A  | aa |  2  |  1
  A  | bb |  2  |  1
  A  | cc |  2  |  1
  A  | bb |  1  |  1
  A  | bb |  2  |  2
  A  | cc |  2  |  2
  A  | bb |  2  |  2
  A  | cc |  1  |  2
  A  | bb |  1  |  2
  A  | cc |  1  |  2
  B  | aa |  2  |  1
  B  | aa |  1  |  1
  B  | bb |  2  |  2
  B  | bb |  1  |  2

이렇게 나오는 상태입니다.

정렬조건은
1. cate ASC
2. type ASC
3. type이 1이면 sort DESC
4. type이 2이면 id ASC 후 sort DESC

type은 1과 2뿐입니다.

원하는 결과는

cate | id | sort | type
  A  | aa |  2  |  1
  A  | bb |  2  |  1
  A  | cc |  2  |  1
  A  | bb |  1  |  1
  A  | bb |  2  |  2
  A  | bb |  2  |  2
  A  | bb |  1  |  2
  A  | cc |  2  |  2
  A  | cc |  1  |  2
  A  | cc |  1  |  2
  B  | aa |  2  |  1
  B  | aa |  1  |  1
  B  | bb |  2  |  2
  B  | bb |  1  |  2

이렇게 되는것입니다.
order by절만으로 해결을하고픈데..UNION등을 안쓰고요..가능할지요?
 답변내용
 
cate asc, type asc , type when '1' then id end desc, sort desc

이렇게 하면 되겠죠?


반응형