【发布时间】:2015-09-17 02:35:04
【问题描述】:
我有一个 MySQL 表包,其中包含字段 id, max_post。 max_post 中的值包含
1,2,3,4,5,10,20,30,40,50,100,200,500,1000,2000
我想找到最合适的包裹。比如我输入230,那么应该 消除一切并选择 200 和 30 包。我想使用 SQL 查询得到结果。
【问题讨论】:
-
您的示例表明
230应该对应于仅200,30,但是200,20,10呢?您是否正在明确寻找最小的列表?那么可以从5,2或4,3生成的值7呢? -
还是值
483?1,2,3,4,5,10,20,30,40,50,100,200= 465,下一个可能的值是500;你选择500是最接近的,还是1,2,3,4,5,10,20,30,40,50,100,200是小于或等于你的目标的最大可能值?或者你可以多次使用一个数字来制作一个加起来正好是 465 的列表? -
组合中的最大数量为 3 或 4,并且不能重复。
-
提到的所有其他歧义呢?
230=200,20,10和200,30是否一样,如果不是,应该使用什么规则从所有匹配项列表中选择一个可能的匹配项?7=5,2或4,3或两者兼而有之?483=200,100,50,40还是500? -
最少计数组合。即200,30。如果多于一种组合采取任何一种。对于 483 ,我们选择 200,100,50,40
标签: php mysql sql codeigniter phpmyadmin