如何做 mysql 子查询从预过滤列表中获取随机记录?

How to do mysql subquery to get random records from pre-filtered list?

我进行了搜索,但找不到有效的解决方案。这里需要一点帮助。

假设我有一个 table 有超过 100 条记录,首先,我需要按特定顺序找出前 20 条记录,然后我需要从这 20 条记录中随机选择 5 条。 这是我的查询,

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;

让我知道如何更正它。谢谢

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

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