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

MYSQL从每个类别中选择一个随机记录,第1张

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

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

SELECtc.id AS cid, c.category, i.id AS iid, i.nameFROM categories cINNER JOIN items i ON c.id = i.categoryORDER 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_itemsGROUP BY cid

请注意,当查询同时具有

GROUP BY
and
ORDERBY
子句时,将在排序之前执行分组。这就是为什么我使用了两个查询的原因:第一个对结果进行排序,第二个对结果进行分组。

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



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4952158.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-13
下一篇2022-11-13

发表评论

登录后才能评论

评论列表(0条)

    保存