오늘의 삽질

[MySQL] ROWNUM 생성 했는데, 중복되는 것들이 있었다. [출처] [MySQL] ROWNUM 생성 했는데, 중복되는 것들이 있었다.

올라치노 2018. 5. 15. 23:16

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