Wie erhalte ich mithilfe einer MySQL-Unterabfrage zufällige Datensätze aus einer vorgefilterten Liste?
P粉776412597
P粉776412597 2024-04-02 09:44:53
0
1
552

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.

P粉776412597
P粉776412597

Antworte allen(1)
P粉863295057

内部查询选择 20 个按 ID 排序的用户,外部查询使用 RAND() 函数随机排序,限制为 5 :)

SELECT * FROM 
(
    SELECT * FROM A ORDER BY id desc LIMIT 20
) T1
ORDER BY rand() limit 5
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage