从数据库中随机读出n条不重复的记录

来源:互联网 发布:自考本科 知乎 编辑:程序博客网 时间:2024/04/29 01:10

背景:考试系统中需要重试题表中读出20个选择题,当然20个选择题不能重复

数据库:MySQL

根据平时写的代码很容易可以想到的有:

Map<Integer, Boolean> mark;while(cnt < 20){产生一个随机编号从表中选出主键等于随机编号的数据根据mark判断是否已取过取过:放入mark中cnt++,否则继续}

但平时写的毕竟没有跟数据库打交道,那么现在是否可以从数据库的角度下手呢?

然后百度一下有:

 select * from user order by RAND() limit 20;
MySql 这样是可行的,其他数据库就不知道了