【发布时间】:2012-12-02 17:16:15
【问题描述】:
我在 MySQL 中有一个表,其中包含一个列名 category。
我正在尝试编写一个查询,它将从每个 category 返回 2 条随机记录。
这是我用来从每个 category 获取 2 条记录的代码,在我的 rating 列中具有最高值:
SELECT e1.*
FROM entries AS e1
WHERE (SELECT Count(*)
FROM entries AS e2
WHERE e2.category = e1.category
AND e1.rating <= e2.rating) <= 2
ORDER BY category,
rating DESC
查看此链接以查看包含一些示例数据和上述查询的表格: http://sqlfiddle.com/#!9/bab8e/1
【问题讨论】:
-
你到底需要什么......每个类别的2个随机记录对吗?或其他什么,这是否与您包含的查询有关..!?
-
查询只是为了显示我正在使用的内容,假设我在每个类别的表 10 中有 30 个条目,我想检索每个类别的 2 个随机条目。这将返回 6 个结果。
标签: mysql select random group-by