gpt4 book ai didi

php - mysql - 在所有日期出现的日期之间搜索

转载 作者:可可西里 更新时间:2023-11-01 07:55:12 25 4
gpt4 key购买 nike

我正在处理一些导入的数据,这些数据存储有关“房间”在特定日期是否可用的详细信息。每个房间都有可用日期的单独条目。

| id  |  date        |  price  |
--------------------------------
| 1 | 2010-08-04 | 45.00 |

用户可以在一个日期范围内进行搜索,搜索需要返回这两个日期之间可用的相关房间。

换句话说,使用 sql 查询来搜索:

where date>=2010-08-04 AND date<=2010-08-09

这还不够,因为这会带回所选日期之间某个时间点的所有可用房间,而不是所有相关日期的可用房间。

我正在考虑以某种方式使用临时日期表来交叉引用该范围内的每个日期都有一个条目,但不确定实现此目的的最佳方式。

最终代码平台是 PHP,我也在探索是否可以在代码中对数据进行后续处理,但如果可能的话,我希望将所有内容都保留在 sql 中。

如有任何建议,我们将不胜感激。

谢谢

最佳答案

更新:我最初的回答与 Quassnoi 的相同,但晚了 1 分钟,所以我决定删除它并做一些不同的事情。此查询不假定 (id, date) 是唯一的。如果有多个条目,它会选择最便宜的。此外,它还汇总了总成本和返回,这也可能很有用。

SELECT id, SUM(price) FROM (
SELECT id, date, MIN(price) AS price
FROM Table1
GROUP BY id, date) AS T1
WHERE `date` BETWEEN '2010-08-05' AND '2010-08-07'
GROUP BY id
HAVING COUNT(*) = DATEDIFF('2010-08-07','2010-08-05') + 1

关于php - mysql - 在所有日期出现的日期之间搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2156425/

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