UPDATE
	테이블
SET
	SORT_NUM = (@sortnum:=@sortnum+1)
WHERE
	(@sortnum:=0)>=0 AND
	id != #{id}
ORDER BY
	SORT_NUM ASC, ID DESC

 

#{id} 파라미터는 방금 insert 된 id 이다.

방금 insert 된 id 를 제외하고 나머지는 1부터 순차적으로 업데이트!

 

WHERE 절에 변수를 초기화 한 뒤

SET 절에 1씩 증가하면서 입력한다.

 

단, 이전 정렬순서를 유지한 채로 정렬이 되어야 한다.

 

ORDER BY 절에는 정렬 기준 컬럼인 SORT_NUM 으로 정렬한 뒤

ID는 순차증가이므로 가장 최신 SORT_NUM 다음으로 정렬 기준이 되며,

역순 정렬을 해줘야 한다.

 

오래 전에 배웠던 UPDATE ~ ORDER BY 구문이 유용하겠다 생각했는데

오늘 사용하게 되는군.

 

참고 사이트 : https://lifecurat.com

+ Recent posts