我正在使用 select 命令从 sql 表中选择值。它从表中返回 10 个值。但我想随机显示 3 个值。
问问题
128 次
4 回答
1
select * from your_table
order by rand()
limit 3
于 2012-08-15T08:20:24.740 回答
0
简单地说,你可以对小桌子这样做:
SELECT * FROM yourTable
ORDER BY RAND()
LIMIT 3;
但是如果你有大表,那么你可以选择使用fragmentation
结果集......假设,你的表包含 200K 行,你只需要随机选择 100 行,那么你可以计算结果集的片段......片段给定表的结果集将是 0.0005,以后可以像这样使用:
SELECT * FROM yourTable WHERE RAND()<=0.0005
要获得准确的 100 行,您可以稍微增加片段,并且可以像这样使用:
SELECT * FROM yourTable WHERE RAND()<=0.0006 LIMIT 100;
于 2012-08-15T08:34:02.083 回答
0
在大桌子上不是一个好主意:
select * from mytable order by rand() limit 3
于 2012-08-15T08:21:04.533 回答