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 29640 게시물 읽기
No. 29640
순번을 매기고 싶습니다..
작성자
양선생
작성일
2010-05-07 16:05
조회수
7,249

안녕하세요.
하루종일 이 문제로 고민하다가 도저히 해결이 안되서 고수님들께 부탁드립니다.
아래처럼 테이블에 값이 있습니다.
LQN 값을 순차적으로 다시 업데이트를 해야하거든요.
CODE 값이 같은것끼리 SEQ를 기준으로 1부터 증가하도록 해야합니다.

한방에 UPDATE를 할 수 있을까요?

= 원본테이블 = 

SEQ

CODE

LQN

GOODS

1

100

1

씨디

2

100

4

이불

3

100

3

4

101

7

전화기

5

101

2

시계

6

102

4

반지

7

102

1

목걸이

8

102

2

신발

= 업데이트 후 테이블 = 

SEQ

CODE

LQN

GOODS

1

100

1

씨디

2

100

2

이불

3

100

3

4

101

1

전화기

5

101

2

시계

6

102

1

반지

7

102

2

목걸이

8

102

3

신발

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

일단 SEQ 컬럼에 unique나 pk가 있다는 전제 하에 작성합니다.

REPLACE [table] SELECT seq, code, lqn, goods FROM

( SELECT seq, code, IF(@prev_code=code,@n_lqn:=@n_lqn+1,@n_lqn:=1) AS lqn, goods, @prev_code:=code FROM [table] ) x;

 

박현우(lqez)님이 2010-05-07 17:15에 작성한 댓글입니다.

박현우님 관심 가져주셔서 감사합니다.
알려주신 쿼리로 하니까 데이터양이 많을때 속도가 많이 느려지네요.
주기적으로 행해지는 것이라 속도도 매우 중요하거든요....ㅜ.ㅜ
보다 빠른 방법은 없을까요?
 

양선생님이 2010-05-07 17:31에 작성한 댓글입니다. Edit

제 노트북에서 10만건으로 테스트해보니 3.5초 걸리네요. 실제 자료가 어느정도일지 알려주실 수 있으실지요.

박현우(lqez)님이 2010-05-11 16:15에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
29648테이블 생성 할 때... [2]
엄승열
2010-05-11
7290
29647테이블 합쳐서 새로운 테이블 만드는방법좀 알려주세요 ㅜㅜ [1]
김봉주
2010-05-10
7409
29641mysql에서 대용량의 insert와 select 처리 방법 [1]
김갑열
2010-05-07
7835
29640순번을 매기고 싶습니다.. [3]
양선생
2010-05-07
7249
29639서버튜팅 부탁드립니다. 한번씩 프로그램이 늦어지는데 원인을 모르겠습니다. [1]
푸르미
2010-05-07
9993
29638안녕하세요 mysql질문입니다. [9]
투루로맨스
2010-05-07
8193
29637utf8->euc-kr 로 변환방법좀알려주세요 [2]
윤은숙
2010-05-07
8462
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다