您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

MYSQL从每个类别中选择一个随机记录

MYSQL从每个类别中选择一个随机记录

查询随机顺序返回加入类别的所有项目:

SELECT
c.id AS cid, c.category, i.id AS iid, i.name
FROM categories c
INNER JOIN items i ON c.id = i.category
ORDER BY RAND()

要将每个类别限制为一个类别,请将查询包装在 partial中 GROUP BY

SELECT * FROM (
    SELECT
    c.id AS cid, c.category, i.id AS iid, i.name
    FROM categories c
    INNER JOIN items i ON c.id = i.category
    ORDER BY RAND()
) AS shuffled_items
GROUP BY cid

请注意,当查询同时具有GROUP BYand ORDER BY子句时,将在排序之前执行分组。这就是为什么我使用了两个查询的原因:第一个对结果进行排序,第二个对结果进行分组。

我了解此查询不会赢得任何比赛。我愿意提出建议。

MySQL 2022/1/1 18:16:16 有432人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶