database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 30688 게시물 읽기
No. 30688
자동번호부여 하면서 insert 하는방법
작성자
김양훈(yanghun72)
작성일
2014-02-13 10:33
조회수
9,317

[작업전]                                                     [원하는결과값]

   id      tn_no     gu_no                  =>      id    tn_no    gu_no  

11              1            0                               11         1                1

12              1            0                               12          1               2

13              2            0                               13          2               1

14              2            0                              14          2                 2               

15             1            0                               15          1                3

16             2            0                               16          2                 3

 

gu_no 자리가 0 에서  tn_no    순서대로 번호를  부여할려고합니다

내가 초보라   tn_no 번호로 정렬해서  

  select * from  table  order by tn_no,id

해서  while 문을 사용해서   gu_no 번호를 update 해서 결과값을  얻었는데

속도가   오래걸려서요

 

update 문장하나로 해결할수있는 방법이 없나 해서요 

 

이 글에 대한 댓글이 총 1건 있습니다.

set @n := 1;
set @tn_no := null;

update table t, (
  select id, tn_no, case when @tn_no = tn_no then @n := @n+1 else @n :=1 end gu_no, @tn_no := tn_no
  from table
  order by tn_no, id
  ) s
set t.gu_no = s.gu_no
where t.id = s.id
;

이런식으로 변수를 사용하면 됩니다.

박인호(paerae)님이 2014-02-14 13:18에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
30694mysql 시퀀스값 문의드립니다. [3]
김태환
2014-02-25
9981
30692select * from 문으로 나온 결과를 삭제하고 싶습니다. [2]
freerole
2014-02-21
8752
30691질의문 부탁드립니다(group관련) [2]
김명길
2014-02-21
8422
30688자동번호부여 하면서 insert 하는방법 [1]
김양훈
2014-02-13
9317
30687특정 범위의 특정 기간이 포함되는지 확인
안용태
2014-02-07
9067
30686close 없이 계속 세션 사용하는 방법 문의
JooHo.Chun
2014-02-06
9180
30685이월금액 찾아오기..도와주세요. [1]
최진호
2014-01-28
8985
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다