2013-02-14 11 views
27

Ottenuto un grande tavolo e voglio aggiungere una colonna che ha un numero scelto a caso per ogni record. 1, 2 o 3.AGGIORNAMENTO MySQL con numero casuale compreso tra 1-3

In difficoltà. Qualche idea?

+5

[Che cosa hai provato? ] (http://www.whathaveyoutried.com/) Vedi [chiedi consiglio] (http://stackoverflow.com/questions/ask-advice), per favore. –

+0

http://stackoverflow.com/questions/6550155/mysql-get-a-random-value-between-two-values ​​ – sgeddes

+0

Non hai ancora provato 'UPDATE' e' RAND() '? – tadman

risposta

98

Prova questo:

UPDATE tableName SET columnName = FLOOR(1 + RAND() *3); 

Dal MySQL documentation per RAND:

Restituisce un casuale in virgola mobile valore v nell'intervallo 0 < = v < 1.0.

Così nella query precedente, il valore più grande che potrebbe essere generato da 1 + RAND()*3 sarebbe 3.999999, che una volta pavimentato darebbe 3. Il valore più piccolo si sarebbe verificato quando RAND() restituisce 0, nel qual caso questo darebbe 1.

-3

fare questo utilizzare la funzione

UPDATE tableName SET columnName = FLOOR(RAND() + RAND()); 
0

RAND(). Restituisce un valore a virgola mobile casuale nell'intervallo 0 <= v < 1.0. Per ottenere un numero intero casuale R nell'intervallo i <= R < j, utilizzare l'espressione FLOOR(i + RAND() * (j − i)). Per esempio, per ottenere un numero intero casuale nella gamma della gamma 1<= R < 3, utilizzare la seguente dichiarazione:

UPDATE tableName 
SET ColumnName= FLOOR(1 + rand() * 3); 

NB:RAND() produce valori decimali casuali da 0 a 1.

Problemi correlati