1

我正在使用 select 命令从 sql 表中选择值。它从表中返回 10 个值。但我想随机显示 3 个值。

4

4 回答 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 tableName
ORDER BY RAND()
LIMIT 3

但请注意,根据这篇文章, 使用ORDER BY RAND()已经落后于表中只有 100 行的优化查询。ORDER BY RAND()

本文展示了基于性能生成随机记录的不同技术。

于 2012-08-15T09:19:54.967 回答
0

在大桌子上不是一个好主意:

select * from mytable order by rand() limit 3
于 2012-08-15T08:21:04.533 回答