Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecione linhas aleatórias no mysql e limite dentro de cada grupo


Então você precisa de 7 registros aleatórios para cada tipo de produto (7 * 12 registros). À primeira vista, você está apenas procurando por um 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)

Se você precisar ordenar todo o conjunto de resultados, poderá usar um ORDER BY cláusula após todo o UNION .