Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wählen Sie zufällige Zeilen in mysql aus und begrenzen Sie sie innerhalb jeder Gruppe

Sie benötigen also 7 zufällige Datensätze für jeden Produkttyp (7 * 12 Datensätze). Auf den ersten Blick sucht man nur nach einer Gewerkschaft.

(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)

Wenn Sie die gesamte Ergebnismenge bestellen müssen, können Sie einen ORDER BY verwenden -Klausel nach dem ganzen UNION .