MySQL- 테이블에서 서브 세트 시퀀스를 생성합니다
문제
다음 표가 있습니다
Id Value
1 3
1 12
1 67
2 7
2 99
5 30
5 33
5 4
5 87
5 12
5 1
이 테이블을 갖도록 업데이트하고 싶습니다.
Id UniqueIdBySubSet Value
1 1 3
1 2 12
1 3 67
2 1 7
2 2 99
5 1 30
5 2 33
5 3 4
5 4 87
5 5 12
5 6 1
나는 완벽한 스레드를 찾았지만 MSSQL을위한 것이 었습니다. MySQL 4.1.10을 사용합니다.
다른 스레드는 여기에서 찾을 수 있습니다. 테이블의 서브 세트에 대한 시퀀스를 생성합니다.
MySQL에서 어떻게 할 수 있는지 아는 사람이 있습니까?
감사합니다, Jean-Francois
해결책
SET @r := 0;
SET @id := 0;
UPDATE mytable m
SET m.UniqueIdBySubSet = IF(@id = id, @r := @r + 1, @r := (@id := id) - id)
ORDER BY
id, value;
다른 팁
빠른 스크립트를 작성하십시오. PHP에서 10 줄 미만의 코드가 필요합니다.
당신이 찾을 수 있다고 생각합니다 이 기사 유용한. 요컨대 : 정확히 하나의 쿼리에서는 할 수 없지만 두 개로 수행 할 수 있습니다 (데이터를 새 테이블에로드하고 삽입 문을 실행하십시오).
제휴하지 않습니다 StackOverflow