mysql根据输入百分比获取结果

时间:2019-07-12 12:07:44

标签: mysql

我有如下问题的mysql数据库。

ID  q_name  difficulty_level
1   abc     easy
2   pqr     normal
3   xyz     difficult

数据库中大约有1,20,000条记录。现在我想获得基于输入百分比的结果。

假设我要获得20条记录,其中33%应该轻松,33%应该正常,34%应该困难。请检查随附的图片以获得更好的主意。我不知道如何进行更简单的查询以快速获得结果。

enter image description here

1 个答案:

答案 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吗?) 这样您就可以限制一个整数。