Mysql
 sql >> Database >  >> RDS >> Mysql

Seleziona righe casuali in MySQL e limita all'interno di ciascun gruppo

Quindi hai bisogno di 7 record casuali per ogni tipo di prodotto (7 * 12 record). A prima vista stai solo cercando un sindacato.

(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 devi ordinare l'intero set di risultati, puoi utilizzare un ORDER BY clausola dopo l'intero UNION .