我使用select命令从sql表中选择值。它从表中返回10个值。但我想随机显示3个值 。
答案 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 显示了在性能基础上生成随机记录的不同技巧。