gpt4 book ai didi

php - 条件MySQL查询的具体例子

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

我有一个名为“预算”的表格,其中包含我们每个月在不同国家/地区的销售预算数据。

我需要创建一个条件查询,以提取给定月份每个国家/地区的预算数据。

如果尚未添加特定国家/地区的预算,则查询应返回上个月的预算(它将始终存在)。

  country   | date       | budget
===================================
| Argentina | 2018-02-01 | $100
| Brazil | 2018-02-01 | $350
| Brazil | 2018-03-01 | $430
| Colombia | 2018-02-01 | $100
| Chile | 2018-02-01 | $100
| Chile | 2018-03-01 | $75

例子:

如果我们从上面的示例表中提取“2018-03-01”的数据,返回应该是:

  country   | date       | budget
===================================
| Argentina | 2018-02-01 | $100
| Brazil | 2018-03-01 | $430
| Colombia | 2018-02-01 | $100
| Chile | 2018-03-01 | $75

我想避免使用“最新日期”的想法(查询始终返回每个国家/地区的最新现有日期),因为新预算可能会在当月结束前添加到表中。

我正在尝试找到一种在单个查询中完成它的方法,但如果那不可能,多个也可以。

我正在使用 PHP7 向 MariaDB 发送查询。

感谢您的贡献!

最佳答案

这真的是一个过滤问题。您想要日期等于或早于给定日期的行:

select b.*
from budgets b
where b.date = (select max(b2.date)
from budgets b2
where b2.country = b.country and
b2.date <= '2018-03-01'
);

在国家和月份的数据库中,性能可能不是什么大问题。但如果是,您需要一个关于 budgets(country, date) 的索引。

关于php - 条件MySQL查询的具体例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48973923/

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