[MySQL] ROWNUM 생성 했는데, 중복되는 것들이 있었다. [출처] [MySQL] ROWNUM 생성 했는데, 중복되는 것들이 있었다.
MySQL에서 구글에서 찾은 방법인 (@rownum:=@rownum+1) AS ROW_NUM를 써서, Rownum를 구하려 했으나, 계속 중복되는 rownum가 있었다.
ROWNUM
1
2
2
2
...
쿼리를 찬찬히 들여다 보니.
기본쿼리 :
SELECT T1.*
FROM (
SELECT (@rownum:=@rownum+1) AS ROW_NUM
, A.*
, FN_펑션(A.값1) AS SAVE_DIR
FROM 테이블 A
, (SELECT @rownum:=0) B
)
WHERE 1 = 1
ORDER BY 등록일 DESC ) T1
WHERE 1 = 1
저 Function이 문제인가 싶어서 고쳐봤다.
수정 후 쿼리 :
SELECT T1.*
, FN_펑션(T1.값1) AS SAVE_DIR
FROM (
SELECT (@rownum:=@rownum+1) AS ROW_NUM
, A.*
FROM 테이블 A
, (SELECT @rownum:=0) B
)
WHERE 1 = 1
ORDER BY 등록일 DESC ) T1
WHERE 1 = 1
이러니 제대로 나온다.
ROWNUM
1
2
3
4
..
저 Function을 살펴봤다..
저 Function에서도 (@rownum:=@rownum+1) 를 쓰고 있는데, rownum를 rn으로 고치고 쿼리를 다시 원복했더니, 제대로 나온다.
일단 해결은 했지만, 무엇이 어떻게 문제인지 시간을 가지고 살펴봐야 겠다.
네이버 블로그를 이전 중입니다. 내 네이버 블로그 http://blog.naver.com/candyman2007