Curso de MySQL
Consultas, lista de correo 'C++ Con Clase' 'MySQL Con Clase' página de entrada Tabla de contenido Contactar con Webmaster
Curso Sentencias Funciones API C

SQL

Funciones

Matemáticas Tiempo ADDDATE ADDTIME CONVERT_TZ CURDATE CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURTIME DATE DATEDIFF DATE_ADD DATE_FORMAT DATE_SUB DAY DAYNAME DAYOFMONTH DAYOFWEEK DAYOFYEAR EXTRACT FROM_DAYS FROM_UNIXTIME GET_FORMAT HOUR LAST_DAY LOCALTIME LOCALTIMESTAMP MAKEDATE MAKETIME MICROSECOND MINUTE MONTH MONTHNAME NOW PERIOD_ADD PERIOD_DIFF QUARTER SECOND SEC_TO_TIME STR_TO_DATE SUBDATE SUBTIME SYSDATE TIME TIMEDIFF TIMESTAMP TIMESTAMPADD TIMESTAMPDIFF TIME_FORMAT TIME_TO_SEC TO_DAYS UNIX_TIMESTAMP UTC_DATE UTC_TIME UTC_TIMESTAMP WEEK WEEKDAY WEEKOFYEAR YEAR YEARWEEK Cadena Conversión Control de Flujo Encriptado Información Genéricas GROUP BY

RAND

RAND()
RAND(N)

Devuelve un valor aleatorio en punto flotante, en el rango 0 a 1.0. Si se especifica un argumento entero N, se usa como valor de semilla (produciendo una secuencia repetible):

mysql> SELECT RAND();
+------------------+
| RAND()           |
+------------------+
| 0.40765042361585 |
+------------------+
1 row in set (0.00 sec)

mysql> SELECT RAND(20);
+------------------+
| RAND(20)         |
+------------------+
| 0.15888261251047 |
+------------------+
1 row in set (0.00 sec)

mysql> SELECT RAND(20);
+------------------+
| RAND(20)         |
+------------------+
| 0.15888261251047 |
+------------------+
1 row in set (0.00 sec)

mysql> SELECT RAND();
+------------------+
| RAND()           |
+------------------+
| 0.96999072001315 |
+------------------+
1 row in set (0.00 sec)

mysql> SELECT RAND();
+------------------+
| RAND()           |
+------------------+
| 0.62700235995185 |
+------------------+
1 row in set (0.00 sec)

No es posible usar una columna con valores RAND() en una cláusula ORDER BY, porque ORDER BY puede evaluar la columna varias veces. Desde la versión 3.23 se puede hacer: SELECT * FROM table_name ORDER BY RAND(). Lo siguiente es corriente para obtener una muestra aleatoria de un conjunto SELECT * FROM table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000. Hay que tener en cuenta que RAND() en una cláusula WHERE será evaluada cada vez que el WHERE sea ejecutado. RAND() no está diseñado para ser un generador aleatorio perfecto, pero sin embargo es un modo rápido de generar números aleatorios que pueden ser portados entre plataformas por la misma versión de MySQL.