gpt4 book ai didi

mysql - 返回值总计达到某个常数的记录的查询

转载 作者:行者123 更新时间:2023-11-29 11:49:52 25 4
gpt4 key购买 nike

我正在尝试在 MySQL 中编写查询。有一个食物表,其中有与每种食物相对应的卡路里。我想要的是一个查询,它可以返回那些卡路里加起来达到 150 的食物的所有可能组合。我在互联网上搜索过,但找不到任何内容。我知道它与 SUM() 有关。

最佳答案

这在 SQL 中执行效率不高。而且,您实际上无法在 SQL 中“一般”执行此操作。但是,您可以获得最多给定数量的组合。例如,以下内容最多可与四种食物进行独特组合:

select *
from foods f left join
foods f2
on f.foodid < f2.foodid left join
foods f3
on f2.foodid < f3.foodid left join
foods f4
on f3.foodid < f4.foodid;

然后您可以添加一个 where 子句来将其限制为您想要的内容:

where (coalesce(f.calories, 0) + coalesce(f2.calories, 0) +
coalesce(f.calories, 0) + coalesce(f2.calories, 0)
) = 150

注意:这些组合是不同的,并且每种食物仅包含一个实例。

关于mysql - 返回值总计达到某个常数的记录的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34289776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com