MYSQL - generare sequenza sottoinsieme di una tabella
Domanda
Ho la seguente tabella
Id Value
1 3
1 12
1 67
2 7
2 99
5 30
5 33
5 4
5 87
5 12
5 1
Mi piacerebbe aggiornarlo per avere questa tabella.
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
Ho trovato il filo perfetto su SO, ma era per MSSQL. Io uso mysql 4.1.10.
L'altro filo può essere trovato qui: sequenze Generazione di sottoinsiemi di una tabella .
Qualcuno sa come posso farlo in MySQL?
Grazie, Jean-Francois
Soluzione
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;
Altri suggerimenti
Si scriva uno script veloce per farlo. Si dovrebbero prendere meno di 10 righe di codice in PHP.
Credo che troverete questo articolo utile. In breve:. Non si può fare esattamente una query, ma si può fare in due (caricare i dati in una nuova tabella ed eseguire una dichiarazione dell'inserto)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow