2026, 새로운 도약을 시작합니다.

mysql order by 질문입니다 정렬조건 채택완료

마지막 order by할때

특정 컬럼값이 1이면 id로 정렬

2면 date로 정렬

이렇게 하고싶은데요 이게 가능할까요?

답변 2개

채택된 답변
+20 포인트

쿼리문만 가지고는 안되고

$sql = "select * from tables where ....";

이 있따고 가정하고

특정컬럼값은 $wr_1 로 가정하에 진행합니다.

if ($wr_1 == '1')

   $sql2 = " order by id asc ";  // id는 보통 알파벳순

else if ($wr_2 == '2')

   $sql2 = " order by date desc "; // 일자는 보통 최신일자부터..

$sql .= $sql2;

와 같이 처리가능합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

쿼리문만 가지고는 힘들군요..

결과값이 한곳에 나오는걸 원해서 흐으으음 다시 생각해봐야겠네요

답변감사합니다

댓글을 작성하려면 로그인이 필요합니다.

Copy


SELECT * FROM xTables WHERE 1 = 1

ORDER BY

(CASE WHEN col1 = 1 THEN col_id

      WHEN col1 = 2 THEN col_date

      ELSE col2 END

) ASC

이런 쿼리를 왜 쓰시는지가 더 궁금하네요

제 짧은 생각에 원하는 Sort 가 될지 의문이 들어서요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고