如何在SQL中请求随机3行?

时间:2015-03-31 13:48:02

标签: mysql sql

如何在纯SQL中请求随机3行(或尽可能接近真正随机)?

我试着这样: -

select * from feedtable ORDER BY RAND() DESC LIMIT 3

但有时候会给我看一下重复的行,而有些时候会告诉我2行而不是3行。

为什么!

2 个答案:

答案 0 :(得分:0)

以下是一个查询,您可以使用该查询删除重复项,使其不显示在结果集中:

SELECT col1, col2
FROM feedtable
GROUP BY (col1, col2);
ORDER BY RAND() DESC
LIMIT 3

这假设您只有两列,可能不正确,但您可以将feedtable中的所有列名添加到上述查询中。

答案 1 :(得分:0)

您可能需要在“排序依据”之前将列随机添加到您的表中。 至少它对我有意义,而且有效。

SELECT *, RAND() AS R
FROM feedtable 
ORDER BY R DESC
LIMIT 3