mysql +1씩 증가 시켜 유니크하게 update 문의드립니다. 0 2 3,870

by 강서꽃미남 [SQL Query] [2014.07.03 15:42:41]


안녕하세요.

PK컬럼을 잡기 위해서 지금 현재 들어있는 데이터에 +1씩 뒤에 문자열을 붙여서 유니크하게 만드려고 하는데요,

이유는 사전에 데이터를 뿔리기 위해서 pk없는 상태에서 카티시안곱을 해서 배로 만들었습니다.

MYSQL 에서 혹시 CONCAT 함수를 사용하여 PDATE문에서 +1씩 증가시켜 만들수 있을 까요.

테이블에 오토인크리멘털 값은 없는 상태구요. 

조언 부탁드리니다.

by 마농 [2014.07.03 16:18:07]
SELECT pdate
     , rn
     , CONCAT(pdate, LPAD(rn, 3, '0')) pk
  FROM (SELECT pdate
             , CASE WHEN @pdate = pdate
                    THEN @rn := @rn + 1
                    ELSE @rn := 1
                END AS rn
             , @pdate := pdate
          FROM (SELECT '20140701' pdate
                UNION ALL SELECT '20140701'
                UNION ALL SELECT '20140701'
                UNION ALL SELECT '20140702'
                UNION ALL SELECT '20140702'
                UNION ALL SELECT '20140703'
                ) a
             , (SELECT @rn := 0, @pdate := '') b
         ORDER BY pdate
        ) a
;

 


by 강서꽃미남 [2014.07.03 18:12:46]

오홋! 감사합니다 활용해볼게요 ^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입