通过SQL显示有限的随机行

时间:2012-08-15 08:19:15

标签: mysql

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

4 个答案:

答案 0 :(得分:1)

select * from your_table
order by rand()
limit 3

答案 1 :(得分:0)

大桌子不是一个好主意:

select * from mytable order by rand() limit 3

答案 2 :(得分:0)

简单地说,你可以为小桌子做这样的事情:

SELECT * FROM yourTable
ORDER BY RAND()
LIMIT 3;

但是如果你有大表,那么你可以选择使用结果集的fragmentation ....假设,你的表包含200K的行,你只需要随机选择100行,然后就可以计算片段了resultset .....给定表的结果集的片段将是0.0005,以后可以像这样使用:

SELECT * FROM yourTable WHERE RAND()<=0.0005

要准确地获得100行,您可以稍微增加片段,并且可以像这样使用:

  SELECT * FROM yourTable WHERE RAND()<=0.0006 LIMIT 100;

答案 3 :(得分:0)

试试这个:

SELECT * 
FROM tableName
ORDER BY RAND()
LIMIT 3

但请注意,使用 ORDER BY RAND() according to this article ORDER BY RAND()已经落后于优化查询,仅排在100行桌子。

This article 显示了在性能基础上生成随机记录的不同技巧。