我有如下问题的mysql数据库。
ID q_name difficulty_level
1 abc easy
2 pqr normal
3 xyz difficult
数据库中大约有1,20,000条记录。现在我想获得基于输入百分比的结果。
假设我要获得20条记录,其中33%应该轻松,33%应该正常,34%应该困难。请检查随附的图片以获得更好的主意。我不知道如何进行更简单的查询以快速获得结果。
答案 0 :(得分:1)
似乎您在寻找联合选择
select ID, q_name
FROM questions
where difficulty_level = 'easy'
limit (ROUND(20*33/100))
union all
select ID, q_name
FROM questions
where difficulty_level = 'normal'
limit (ROUND(20*33/100))
union all
select ID, q_name
FROM questions
where difficulty_level = 'difficult'
limit (ROUND(20*34/100))
您还应该注意结果数。 作为20 ist 6.6中的33%,您必须获得6或7个结果。 在该示例中,您有34%的难度,这意味着它是首选,因此您可能希望将其四舍五入。
恕我直言,我更喜欢用您创建MySQL命令的语言来计算限制 (PHP吗?) 这样您就可以限制一个整数。