CASE WHEN ORDER BY 각각 오름 내림차순 채택완료
SELECT *,
CASE WHEN vs_lv = {$vs_lv} AND vs_id={$member['mb_id']} AND vs_win = '' THEN 1
WHEN vs_lv = {$vs_lv} AND vs_win = '' THEN 2
WHEN vs_lv = {$vs_lv} THEN 3
ELSE 4 END AS ord1
FROM vsgababo
ORDER BY ord1 ASC, vs_datetime DESC LIMIT {$lim_start} , {$lim}
위와 코드에서 1과 2는 vs_datetime ASC 정렬 3은 vs_datetime DESC로 정렬하고 싶은데
어떻게 해야할지 아무리 이리저리 해봐도 원하는 답을 못찾았습니다.
답변 2개
Select * from ( order by 없는 기존 query) A order by ord1
아니면
SELECT *,
CASE WHEN vs_lv = {$vs_lv} AND vs_id={$member['mb_id']} AND vs_win = '' THEN 1
WHEN vs_lv = {$vs_lv} AND vs_win = '' THEN 2
WHEN vs_lv = {$vs_lv} THEN 3
ELSE 4 END AS ord1
FROM vsgababo
ORDER BY
CASE WHEN vs_lv = {$vs_lv} AND vs_id={$member['mb_id']} AND vs_win = '' THEN 1
WHEN vs_lv = {$vs_lv} AND vs_win = '' THEN 2
WHEN vs_lv = {$vs_lv} THEN 3
ELSE 4 END
ASC, vs_datetime DESC LIMIT {$lim_start} , {$lim}
답변에 대한 댓글 2개
SELECT *,
CASE WHEN vs_lv = {$vs_lv} AND vs_id={$member['mb_id']} AND vs_win = '' THEN 1
WHEN vs_lv = {$vs_lv} AND vs_win = '' THEN 2
WHEN vs_lv = {$vs_lv} THEN 3
ELSE 4 END AS ord1
FROM vsgababo
) A
ORDER BY ord1 ASC, vs_datetime DESC LIMIT {$lim_start} , {$lim}
댓글을 작성하려면 로그인이 필요합니다.
일반적인 방법으로는 힘들것 같고
쿼리를 조금 변태같이 꼬아야 가능할것 같은데
그렇게 해서 완성된 쿼리가 얼마만큼 성능을 보장할지는 모르겠습니다.
정확히 무엇을 의도하시는지는 모르겠으나
다른 방법을 찾아보시는걸 추천드립니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
혹시 알려주신 Select * from ( order by 없는 기존 query) A order by ord1 를 조금더 상세히 알려주실수 없을까요. 어떤 방법인지 공부좀 해보게요