Query MySQL per assegnare un numero casuale univoco a ciascuna riga
Domanda
Desidero allegare una colonna alla mia tabella che sarà un numero casuale da un elenco sequenziale = al numero di righe.
Quindi, se la mia tabella avesse 999 righe , allora i numeri da 1 a 999 sarebbero assegnati in modo casuale e univoco .
Ora, ho pensato che avrei potuto aggiungere un finto TempRandomColumn = Rand (), ordinarlo per quello e aggiungere i numeri in sequenza usando PHP. Ma questo significa 999 dichiarazioni MySQL.
C'è un modo per farlo usando una singola istruzione MySQL?
Grazie per qualsiasi suggerimento.
Soluzione
SET @r := 0;
UPDATE items2
SET author_id = (@r := @r + 1)
ORDER BY
RAND()
Altri suggerimenti
SET @i=1;
SELECT t.*, @i:=@i+1 as RAND_NUM FROM your_table t ORDER BY RAND();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow