index mysql random numbers between

index - order by random mysql



ACTUALIZACIÓN DE MySQL con número aleatorio entre 1-3 (3)

Tengo una gran mesa y quiero agregar una columna que tenga un número elegido al azar para cada registro. 1, 2 o 3.

Teniendo un tiempo difícil. ¿Algunas ideas?


Hacer esto

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


Prueba esto:

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

De la documentation MySQL para RAND :

Devuelve un valor aleatorio de coma flotante v en el rango 0 <= v <1.0.

Por lo tanto, en la consulta anterior, el valor más grande que podría generarse con 1 + RAND()*3 sería 3.999999 , que cuando esté 3.999999 daría 3. El valor más pequeño ocurriría cuando RAND() devuelva 0, en cuyo caso esto daría 1.


Use la función RAND() . Devuelve un valor aleatorio de punto flotante v en el rango 0 <= v < 1.0 . Para obtener un entero aleatorio R en el rango i <= R < j , use la expresión FLOOR(i + RAND() * (j − i)) . Por ejemplo, para obtener un entero aleatorio en el rango del rango 1<= R < 3 , use la siguiente declaración:

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

NB: RAND() produce valores de flotación aleatorios de 0 a 1.