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.