У меня есть следующая таблица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
Я нашел идеальную нить на SO, но это было для mssql. Я использую mysql 4.1.10.
Другая нить можно найти здесь: Generating sequences for subsets of a table.
Кто-нибудь знает, как я могу это сделать в mysql?
Спасибо, Жан-Франсуа
Привет, Я пробовал и проверял ваш ответ, и он не работает. Вот значение, которое я получаю для примера там. 1, 1, 3 1, 2, 12 1, 3, 67 2, 1, 7 2, 2, 99 5, 3, 1 5, 4, 4 5, 5, 12 5 , 6, 30 5, 7, 33 5, 8, 87 Я работаю с ним около 20 минут, но мне кажется, что он не работает. Идея кажется замечательной, хотя, я думаю, она может работать. Если у вас есть какие-либо идеи, не стесняйтесь добавлять дополнительную информацию. –
Я смог заставить его работать. Но первый индекс больше не 1, а 0. SET @r: = -1; SET @id: = -1; UPDATE mytable m SET m.UniqueIdBySubSet = CASE WHEN @id = 0 THEN @r: = (@id: = m.Id) - m.Id WHEN m.Id = @id THEN @r: = @r + 1 ELSE @r: = (@id: = m.Id) - m.Id END ORDER BY m.Id, m.Value; Спасибо за ввод. Это было действительно оценено. –