Estoy tratando de generar un entero aleatorio para cada fila que selecciono entre 1 y 60 como temporizador.¿Cómo obtener el rango entero al azar de mysql?
SELECT downloads.date, products.*, (FLOOR(1 + RAND() * 60)) AS timer
He buscado y sigo viniendo a esta función FLOOR como la forma de seleccionar un entero aleatorio en un rango. Esto me da un 1 por cada fila. ¿Qué me estoy perdiendo?
estoy en MySQL 5.0.75
Aquí está el resto de la consulta me creer que podría ser un problema de anidación
SELECT *
FROM (
SELECT downloads.date, products.*, FLOOR(1 + (RAND() * 60)) AS randomtimer,
(
SELECT COUNT(*)
FROM distros
WHERE distros.product_id = products.product_id
) AS distro_count,
(SELECT COUNT(*) FROM downloads WHERE downloads.product_id = products.product_id) AS true_downloads
FROM downloads
INNER JOIN products ON downloads.product_id = downloads.product_id
) AS count_table
WHERE count_table.distro_count > 0
AND count_table.active = 1
ORDER BY count_table.randomtimer , count_table.date DESC LIMIT 10
Esto me dio un error de sintaxis. – kevzettler
puede usar piso en lugar de lanzar a int, el casting se usa redondo. –