如何使用MySQL子查询从预过滤的列表中获取随机记录?
P粉776412597
P粉776412597 2024-04-02 09:44:53
[PHP讨论组]

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

假设我有一个包含超过 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;

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

P粉776412597
P粉776412597

全部回复(1)
P粉863295057

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

SELECT * FROM 
(
    SELECT * FROM A ORDER BY id desc LIMIT 20
) T1
ORDER BY rand() limit 5
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号