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

Abfrage zum Abrufen der obersten 2. und 3. Datensätze aus einer Tabelle

Du bist ziemlich nah dran:

(select * from student where SECTION = 'A' order by rand() LIMIT 3
) union all
(select * from student where SECTION = 'B' order by rand() LIMIT 2
)
order by rand();

Die Unterabfragen verwenden order by rand() zufällige Schüler mit jeder Klasse zu bekommen. Die äußere order by rand() randomisiert die fünf Schüler.

Hinweis:Dies ist der einfachste Weg, um das zu erreichen, was Sie wollen. Wenn die students Tabelle sogar mäßig groß ist und die Leistung ein Problem darstellt, gibt es alternative Lösungen.