MYSQL ROWNUM으로 일련번호 다시 정렬하기

KSOJIN·2023년 6월 29일
0

taxcare

목록 보기
1/10
post-thumbnail

🔸MYSQL에서 ROWNUM 사용하는 방법

▼ MYSQL에는 ROWNUM 기능이 없기 때문에 변수를 활용해서 ROWNUM 처럼 사용할 수 있다.

SELECT @rownum := @rownum+1 AS RNUM, A.tax_No, A.tax_Id A.tax_Amt
FROM tax_table AS A, (SELECT @rownum := 0) AS R
WHERE A.tax_Year = 2023
ORDER BY A.tb_No;

▼ ROWNUM을 추가한 테이블을 원본 테이블과 INNER JOIN

SELECT B.RNUM, A.tax_No, A.tax_Id, A.tax_Amt
FROM tax_table AS A
INNER JOIN (SELECT (@rownum := @rownum+1) AS RNUM, tax_No
			FROM tax_table, (SELECT @rownum := 0) AS R
            WHERE tax_Year = 2023
            ORDER BY tax_No) AS B
ON A.tax_Year = B.tax_Year AND A.tax_No = B.tax_No;

▼ INNER JOIN 으로 업데이트 조건 추가

UPDATE tax_table AS A
INNER JOIN (SELECT (@rownum := @rownum+1) AS RNUM, tax_No, tax_Year
			FROM tax_table, (SELECT @rownum := 0) AS R
            WHERE tax_Year = 2023
            ORDER BY tax_No) AS B
ON A.tax_Year = B.tax_Year AND A.tax_No = B.tax_No
SET A.tax_No = B.RNUM
WHERE A.tax_No <> B.RNUM;

🐥기본키 없이 일련번호로 데이터를 생성, 수정, 삭제 하는 경우 일련번호를 다시 정렬해야 될 경우가 있을 수 있다. 이런 경우 UPDATE 쿼리로 한번에 변경하고 싶어서 작성했다.

0개의 댓글