如何在纯SQL中请求随机3行(或尽可能接近真正随机)?
我试着这样: -
select * from feedtable ORDER BY RAND() DESC LIMIT 3
但有时候会给我看一下重复的行,而有些时候会告诉我2行而不是3行。
为什么!
答案 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