0부터 14776336까지를 일률적으로 62로 나눠서 62 이내로 나오게 할수 있을까요?
본문
짧은 URL을 구현하려고 합니다.
미리 URL을 다 입력해 놓는 방식을 먼저 구현하려고 합니다.
그때그때 요청 들어오면 URL 생성하는건 이거 끝나고 하려고요.
62개의 문자를 사용하려는데요.
1부터 14776336번 ROW가 있습니다.
이걸 62 단위로 나누고 결과값이 62 이내로 나오게 하려고 합니다.
62로 나누고 62가 넘으면 63이 되는게 아니라 1이 되게요.
63 = 1
64 = 2
65 = 3
66 = 4
mysql 테이블에 primary key 로 저장된 번호를 62로 나눠서 저리 만들고 싶어요.
지금 하려고 보니
UPDATE _surl_li SET n_3=floor((num-63)/62);
UPDATE _surl_li SET n_3=n_3-62 WHERE n_3>62;
UPDATE _surl_li SET n_3=n_3-62 WHERE n_3>62;
이 방식은 "UPDATE _surl_li SET n_3=n_3-62 WHERE n_3>62;" 이 쿼리를 23만번 해야 다 62 이내로 나오니 너무 비효율적인것 같아요.
쿼리를 적게 써서 63 64 65 66 이 아니라 62 넘으면 다시 12 3 4 5로 결과값 나오게 하는 쿼리문 부탁드립니다.
이런 경우는 처음하는거라 생각이 안나네요.
답변을 작성하시기 전에 로그인 해주세요.