Ich habe gesucht, konnte aber keine funktionierende Lösung finden. Brauche hier ein wenig Hilfe.
Angenommen, ich habe eine Tabelle mit mehr als 100 Datensätzen. Zuerst muss ich die ersten 20 Datensätze in einer bestimmten Reihenfolge finden und dann aus diesen 20 Datensätzen zufällig 5 Datensätze auswählen. Das ist meine Frage,
SELECT a FROM tableA WHERE b IN ( SELECT b FROM tableA WHERE c="x" ORDER BY d DESC LIMIT 20 ) ORDER BY RAND() LIMIT 5;
Lassen Sie mich wissen, wie ich das Problem beheben kann. Danke.
内部查询选择 20 个按 ID 排序的用户,外部查询使用 RAND() 函数随机排序,限制为 5 :)