sql >> Base de Datos >  >> RDS >> Mysql

Seleccione filas aleatorias en mysql y limite dentro de cada grupo

Entonces necesita 7 registros aleatorios para cada tipo de producto (7 * 12 registros). A primera vista solo estás buscando un sindicato.

(SELECT * FROM products WHERE product_type_id=1 AND deleted='n' ORDER BY RAND() LIMIT 7)
UNION ALL
(SELECT * FROM products WHERE product_type_id=2 AND deleted='n' ORDER BY RAND() LIMIT 7)
UNION ALL
...
UNION ALL
(SELECT * FROM products WHERE product_type_id=12 AND deleted='n' ORDER BY RAND() LIMIT 7)

Si necesita ordenar todo el conjunto de resultados, puede usar un ORDER BY cláusula después de todo UNION .