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

È stato utile?

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
scroll top