gpt4 book ai didi

mysql - MariaDB SELECT 仅针对 30 天内过期的帐户的所有记录

转载 作者:行者123 更新时间:2023-11-29 05:57:46 24 4
gpt4 key购买 nike

我如何SELECT 记录使用 MariaDB,其帐户设置为根据 max() 过期日期设置为 30 天后过期?

什么 SELECT:如果今天是 2017 年 12 月 7 日且以下帐户“a”的最长到期日期为 6 月2018 年 1 日,绝对不应该使用所需的 SELECT 查询为帐户“a”返回任何记录,无论该表包含帐户“a”的行早于今天的日期。

应该选择什么:账户“b”有两条记录,并且max()记录小于30天; id 4 行是应该从所需的SELECT 查询中返回的行。

+----+---------+------------+
| id | account | expiration |
+----+---------+------------+
| 1 | a | 2017-01-01 |
| 2 | a | 2018-06-01 |
| 3 | b | 2017-01-01 |
| 4 | b | 2018-01-01 |
+----+---------+------------+

虽然我最严格的测试最终失败了,但我在各个方面都花了一些时间。这是我已经开始工作的一点:

SELECT DATEDIFF(STR_TO_DATE(expiration, '%Y-%m-%d'),CURDATE()) AS days_left FROM table;

最佳答案

  1. 您已经注意到您想要 MAX
  2. 您希望每个帐户 MAX,这在 SQL 中转换为 GROUP BY account
  3. 您只想显示某些帐户,即在特定日期范围内具有 MAX 的帐户。聚合条件属于 HAVING 子句。

因此:

select account
from mytable
group by account
having max(expiration) between current_date and current_date + interval 30 day;

关于mysql - MariaDB SELECT 仅针对 30 天内过期的帐户的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47750595/

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