在MySQL中选择随机行

use*_*073 13 mysql sql

我正在开发一个测验网站,我有一个存储所有问题的数据库.有不同类型的测验,如数学,科学,历史等.所有问题都存储在一个表中.

我的问题表看起来像这样:

questions ( qno(int)  ,type(int), question, .... ,... )
Run Code Online (Sandbox Code Playgroud)

qno是主键,type用于跟踪测验类型:

if type = 1 (math)
 type = 2(science)
Run Code Online (Sandbox Code Playgroud)

现在,我想为每种类型的测试选择一些随机问题.例如,我可能只想为数学测试选择一些随机的20个问题.

MySQL有某种方法可以选择随机行吗?

Eri*_*ric 29

您可以使用randMySQL中的函数对行进行排序,然后使用前10个(或者您想要的多个)limit.

select * from table order by rand() limit 10
Run Code Online (Sandbox Code Playgroud)

如果你只想要数学问题:

select * from table where type = 1 order by rand() limit 10
Run Code Online (Sandbox Code Playgroud)