从MySQL表中随机选择行

问题描述:

可能重复:
Selecting Random Rows in MySQL从MySQL表中随机选择行

我使用PHP和MySQL创建一个简单的Web应用程序。在它中,我需要随机地从表中随机选择一小组行。我如何使用MySQL来实现这样的事情?

+2

请提问之前搜索下。搜索你的问题的确切标题产生[this](http://*.com/questions/1283640)和许多其他类似的问题。 – DaveRandom 2012-01-08 17:32:47

+0

[MySQL从600K行中快速选择10个随机行](https://*.com/q/4329396/6521116) – 2017-06-17 11:10:45

SELECT * FROM table ORDER BY RAND() LIMIT 10; 

编辑:

关于MySQL的RAND()函数的有用信息,可以发现here

+0

ouch ...我有> 500M行!这有点慢... – 2015-09-01 18:39:45

+2

还有其他的performant选项,如果你有一个连续的主键,用你选择的语言预先计算一系列ID并做一个SELECT ... WHERE id IN(x)' – 2015-09-01 19:26:25

+0

Query'选择用户的count(*);'返回10293453.查询'SELECT id FROM用户ORDER BY RAND()限制10;'运行5秒。 – klay 2015-10-12 08:26:50

select * from table order by rand() limit 10 

注意order by rand()与大型数据集是非常缓慢的,但在你的情况下,它不是一个问题。

你可以使用RAND()函数来做到这一点。

SELECT questine FROM tablename ORDER BY RAND() LIMIT 10 

将随机选择10个questines下假设的questine存储领域questine