게시판 글 목록을 나열할 때 글번호에 해당 글의 num(primary key)를 나타내면 중간에 글을 삭제하면 해당 글 번호가 비게 된다. num은 그냥 해당 레코드의 값으로 가지고 있고, 글 목록을 표시할 떄 num에 rownum 즉 행 번호를 계산해서 보여주면 해결된다.
아래 3가지 방법 중 아무거나 사용하면 된다.
SELECT @ROWNUM:=@ROWNUM+1, A.*
FROM 테이블명 A, (SELECT @ROWNUM:=0) R;
SET @ROWNUM:=0;
SELECT @ROWNUM:=@ROWNUM+1, A.*
FROM 테이블명 A;
SELECT @ROWNUM:=@ROWNUM+1, A.*
FROM REQUEST_ACTION_HISTORY A
WHERE (@ROWNUM:=0)=0;
--------------- 응용 ---------------
--ROWNUM이 2씩 증가
SELECT @ROWNUM:=@ROWNUM+2, A.*
FROM 테이블명 A, (SELECT @ROWNUM:=0) R
;
--ROWNUM이 100부터 시작
SELECT @ROWNUM:=@ROWNUM+2, A.*
FROM 테이블명 A, (SELECT @ROWNUM:=99) R
;
역순으로 출력할때는 서브 쿼리를 이용해 ROWNUM을 부여하고 이 ROWNUM으로 다시 정렬하면 된다.
select *
from (select @ROWNUM:=@ROWNUM +1 AS ROWNUM, A.*
FROM 테이블명 A, (select @ROWNUM:=0) R
ORDER BY 컬럼명 asc) sub
order by sub.rownum desc;
참조
'5. DB > 4-1. MySQL DBMS' 카테고리의 다른 글
MySQL DBMS - [ Xml 파일 MySQL에 삽입 ] (0) | 2022.06.27 |
---|---|
MySQL - [ DB 데이터 Export/Import ] (0) | 2022.05.26 |
MySQL - [ ON DELETE CASCADE ] (0) | 2022.05.15 |
MySQL - [ View ] (0) | 2022.05.13 |
MySQL - [ 테이블에 선언된 제약조건 조회 ] (0) | 2022.05.10 |