背景:考试系统中需要重试题表中读出20个选择题,当然20个选择题不能重复
数据库:MySQL
根据平时写的代码很容易可以想到的有:
Map<Integer, Boolean> mark;
while(cnt < 20){
产生一个随机编号
从表中选出主键等于随机编号的数据
根据mark判断是否已取过
取过:放入mark中cnt++,否则继续
}但平时写的毕竟没有跟数据库打交道,那么现在是否可以从数据库的角度下手呢?
然后百度一下有:
select * from user order by RAND() limit 20;MySql 这样是可行的,其他数据库就不知道了
本文探讨了在MySQL数据库中如何高效地从试题表中随机抽取20道不重复的选择题。介绍了通过Map标记已选题目及利用ORDER BY RAND()进行随机排序并限制结果数量的方法。
174万+

被折叠的 条评论
为什么被折叠?



