SELECT * FROM `users` u
WHERE (select sum(size) from `users` where size <= u.size order by size) < 150
ORDER BY userid
但是,您描述的想要选择最适合给定大小的用户的问题是装箱问题。这是一个NP- Hard问题,用ANSI sql很难解决。但是,以上内容似乎返回了正确的结果,但实际上,它只是从最小的项目开始,然后继续添加项目,直到垃圾箱已满。
如何在以下条件下找到Sum(field),即``从sum(field)<150的表中选择*''。
SELECT * FROM `users` u
WHERE (select sum(size) from `users` where size <= u.size order by size) < 150
ORDER BY userid
但是,您描述的想要选择最适合给定大小的用户的问题是装箱问题。这是一个NP- Hard问题,用ANSI sql很难解决。但是,以上内容似乎返回了正确的结果,但实际上,它只是从最小的项目开始,然后继续添加项目,直到垃圾箱已满。