求一条sql语句

ZZZ5512536 2011-11-17 09:20:11
题库里很多题目,每个题都有各自的分值score。
求一条sql语句:从题库中挑选出一组分值和为100分的id(假设题库里有和值为100分的组合)

另外如果出现题库里没有和值100分的情况,可以如何处理呢?
(我想法是挑选出分值和最接近100的一组id,然后将其中一道题的分值在前端显示时,加上或者减少与100的分差,这么凑100。
比如:挑选出一组和为99的id,随机将其中一道5分的题在页面显示时变为6分,凑成100总分。)

不知道挑选出分值和最接近100的一组id,这个能通过sql语句实现没?当然如果大家有更好的想法可以说下。谢谢了!

...全文
85 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rucypli 2011-11-18
  • 打赏
  • 举报
回复
select *,col1+col2+col3 as n
from tb
where col1+col2+col3<=100
order by n desc
limit 10;
ACMAIN_CHM 2011-11-17
  • 打赏
  • 举报
回复
没办法,只能用背包算法。 从N件重量不等的物品中,选出正好10KG的物品。

你可以先把题库中的题目随便排列出来 select * from xxx order by rand(); 然后利用传统的背包算法抽出100题。 一般是用递归。


第一次见到这种题库。 常见的都是 把题分为几类,比如单选,多选,判断。 这样几类,但每一类中的题目都是分值相同的。 这样也就是抽取固定数目的题即可。
ZZZ5512536 2011-11-17
  • 打赏
  • 举报
回复
如果是程序的话,用java语言写怎么简单一点。感觉这个貌似有点涉及回溯算法。。求高人指教
ACMAIN_CHM 2011-11-17
  • 打赏
  • 举报
回复
这个一般是通过程序实现。 仅用SQL语句无法实现。

56,685

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧