mysql - 选择难度递减的随机问题行

标签 mysql

我这里有一个情况: 我正在制作一个随机在线试卷系统,用户可以选择从 0 到 5 的难度级别。这里是 Free anime streaming apps .

我的问题表中有大约 16k 条记录,每个问题都有从 0 到 5 的难度级别。 现在我需要的是从 16k 记录中随机抽取 10 个问题,难度由用户选择。

SELECT question,id from questions where difficulty = '5'

这工作正常,但有一种情况,难度为 5 的问题少于 10 个。在这种情况下,我需要选择难度为 4 的其他问题,如果再次没有难度为 4 的问题,那么它必须检索难度级别为 3 的问题,依此类推,使 10 个问题对用户可见。

我该怎么办?我需要一个 SQL 查询! 谢谢

最佳答案

SELECT question,id 
from questions 
order by difficulty = 5 desc, 
         difficulty desc,
         rand()
limit 10

关于mysql - 选择难度递减的随机问题行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27939896/

相关文章:

java - Hibernate - 使用日期 where 子句过滤单列数据

mysql - SQL INNER JOIN ON LIKE

mysql - "Exclude"结果与 SQL WHERE 或 JOIN?

php - 在php中计算从过去到现在的持续时间

mysql - 触发以更新行信息

mysql - 显示编码格式的汉字。如何修复它

mysql - 从订单中选择最后的订单状态

MySQL唯一索引设计

mysql - 同一列和按天分组的值的日期时间差异总和

javascript - AJAX 未提交表单