Database/MySQL

[MySQL] ROWNUM 사용하기

📝 작성 : 2020.09.23  ⏱ 수정 : 
728x90

test테이블


위와 같은 테이블이 있을 때



SELECT    @ROWNUM := @ROWNUM + 1 AS rownum, table.*
FROM    table, (SELECT @ROWNUM := 0) tmp
ORDER    BY birth ASC

위의 쿼리 실행 결과



역순으로 정렬하면서 rownum을 가져오고 싶은 경우 어떻게 해야 할까

SELECT    @ROWNUM := @ROWNUM + 1 AS rownum, table.*
FROM    table, (SELECT @ROWNUM := 0) tmp
ORDER    BY birth DESC

위의 쿼리 실행 결과



단순하게 ORDER BY만 바꾸면 원하는 결과를 얻지 못합니다.

SELECT    *
FROM    (SELECT    @ROWNUM := @ROWNUM + 1 AS rownum, table.*
        FROM    table, (SELECT @ROWNUM := 0) tmp
        ORDER    BY birth ASC) t
ORDER    BY t.rownum DESC

위의 쿼리 실행 결과

반응형