Heim  >  Fragen und Antworten  >  Hauptteil

Wie erhalte ich mithilfe einer MySQL-Unterabfrage zufällige Datensätze aus einer vorgefilterten Liste?

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粉776412597P粉776412597186 Tage vor445

Antworte allen(1)Ich werde antworten

  • P粉863295057

    P粉8632950572024-04-03 00:11:25

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

    SELECT * FROM 
    (
        SELECT * FROM A ORDER BY id desc LIMIT 20
    ) T1
    ORDER BY rand() limit 5

    Antwort
    0
  • StornierenAntwort