我进行了搜索,但找不到有效的解决方案。这里需要一点帮助。
假设我有一个包含超过 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() 函数随机排序,限制为 5 :)
SELECT * FROM ( SELECT * FROM A ORDER BY id desc LIMIT 20 ) T1 ORDER BY rand() limit 5
内部查询选择 20 个按 ID 排序的用户,外部查询使用 RAND() 函数随机排序,限制为 5 :)