Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélectionnez des lignes aléatoires dans mysql et limitez-les dans chaque groupe

Vous avez donc besoin de 7 enregistrements aléatoires pour chaque type de produit (7 * 12 enregistrements). À première vue, vous recherchez simplement un syndicat.

(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 vous avez besoin de commander l'ensemble des résultats, vous pouvez utiliser un ORDER BY clause après l'ensemble UNION .