2
一个的每个值我使用MySQL的和我有一个这样的表:读取多随机值某一领域
| id |类别|字段1 |字段2 |
值类别字段不是唯一的。
我想为每个类别值
我无法找到在一个查询的解决方案取5个随机行。
你能帮我解决这个问题吗?
谢谢
编辑: 我发现这一点:
SELECT t.*
FROM (
SELECT @lim := 5,
@cg := -1
) vars,
table_example t
WHERE CASE WHEN @cg <> category THEN @r := @lim ELSE 1 END > 0
AND (@r := @r - 1) >= 0
AND (@cg := category) IS NOT NULL
ORDER BY
category , id
但在这种情况下,提取5行对每个类别的值(但它是由ID排序)。我试图调整,要随机排序,但我无法找到自己满意的东西......
我想你会需要一个程序来做到这一点。我不相信一个查询可以做到这一点。 – Nik 2011-04-22 16:50:42
我对MYSQL语言不是很有经验,你说的程序是什么意思? – pauldid 2011-04-22 17:45:12
存储过程或函数可以获取每个类别,为每个类别获取五条记录,并构建一切结果表。这可能是你最好的选择。你想要的对于单个查询来说非常复杂。 – Nik 2011-04-22 18:13:23