背景:考试系统中需要重试题表中读出20个选择题,当然20个选择题不能重复
数据库:MySQL
根据平时写的代码很容易可以想到的有:
Map<Integer, Boolean> mark;
while(cnt < 20){
产生一个随机编号
从表中选出主键等于随机编号的数据
根据mark判断是否已取过
取过:放入mark中cnt++,否则继续
}
但平时写的毕竟没有跟数据库打交道,那么现在是否可以从数据库的角度下手呢?
然后百度一下有:
select * from user order by RAND() limit 20;
MySql 这样是可行的,其他数据库就不知道了