以下是我已经尝试在 Sql 中选择随机问题的方法:
通过 newid() 从 testTable 中选择前 10 个 id
- 未针对大数据进行优化
从 testTable 表样本中选择前 10 个 id(1%) - 但是对于表样本,我们不能确定它总是会返回数据,因为它适用于选择页面的概率
我已经尝试了其他几种方法来获取行号,但我仍然想要更优化的解决方案
我只想要那些之前没有选择的 id。我不想使用 not in 因为 sql 不会缓存 not in 查询。
欢迎任何比在查询中使用 not 更优化的方法来挑选尚未挑选的 id。
我将讨论表的架构:
假设有以下表格:
- 包含问题的表,QuestionsTable
- 包含所有用户进行测试的表说 testUserTale
- 包含测试中每个用户的问题的表。
所以我必须确保曾经尝试过问题的学生在下一次测试中不会再看到