MYSQL - Erzeugen Subset-Sequenz in einer Tabelle
Frage
Ich habe die folgende Tabelle
Id Value
1 3
1 12
1 67
2 7
2 99
5 30
5 33
5 4
5 87
5 12
5 1
Ich mag es zu aktualisieren, um diese Tabelle zu haben.
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
Ich fand die perfekten Gewinde auf SO, aber es war für MSSQL. Ich benutze MySQL 4.1.10.
Der andere Thread finden Sie hier: Generieren von Sequenzen, die für Teilmengen einer Tabelle .
Hat jemand weiß, wie ich das tun kann in MySQL?
Danke, Jean-Francois
Lösung
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;
Andere Tipps
Schreiben Sie eine schnelle Skript, es zu tun. Es sollte weniger als 10 Zeilen Code in php.
Ich glaube, Sie werden feststellen, dieser Artikel nützlich. Kurz gesagt:. Sie es in genau einer Abfrage nicht tun können, aber man kann es in zwei tun (laden Sie Ihre Daten in eine neue Tabelle, und führen Sie eine Insert-Anweisung)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow