背景
一个自动抽题的小demo,其中mysql中设置id为主键自增长,但是整个程序有删除逻辑
需求
现在有一个需求是实现自动抽题
思路
原本后端的思路如下:
- 查询题目个数
- 通过random类实现生成在题目个数范围内随机的Randomid
- 查询id从而得到相应题目
但是由于整个demo中有删除的功能,在删除后会出现数据库的id与题目个数不一致
请问有什么解决方案吗,或者其他的方案
一个自动抽题的小demo,其中mysql中设置id为主键自增长,但是整个程序有删除逻辑
现在有一个需求是实现自动抽题
原本后端的思路如下:
请问有什么解决方案吗,或者其他的方案
用limit offset
randomid是21则:
SELECT
*
FROM
questions
ORDER BY
somefield
LIMIT 1 OFFSET 20;
通过一个list就可以解决
List<Integer> ids = 查询库里所有题目的主键;
获取长度
int len = ids.size();
然后在指定长度中随机数,通过ids.get(随机数)获取抽中题目的id就可以了
3 回答2.6k 阅读✓ 已解决
3 回答4.1k 阅读✓ 已解决
8 回答3.6k 阅读
4 回答2.8k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
你的问题是在你删了题目之后,题目的数量和ID不匹配了,你直接查所有题目,然后在随机选择题目就行了