gpt4 book ai didi

mysql - 在 MYSQL 中添加日期和检查 NULL 值

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

我一直在尝试找出一个将执行以下操作的查询:

  1. 查看last_service记录,将以天为单位的delivery_frequency记录添加到mysql中的next_service日期字段。
  2. 但是,如果 last_serviceNULLEmpty,则将 last_service 更新为今天的日期并执行第 1 步之后。

我知道如何执行以下查询的第一步:

UPDATE events SET next_service = DATE_ADD(last_service,INTERVAL 14 DAY) WHERE order_product_id = 3;

但我发现第 2 步有点棘手。有人可以告诉我该怎么做吗?

我正在用 PHP 使用这些,但我不想用 PHP 执行双重查询或其他操作来处理这部分。

你可以这样想我在找什么:

UPDATE events SET next_service = IF last_service IS NOT NULL OR '' THEN
DATE_ADD(last_service,INTERVAL 14 DAY) ELSE SET last_service = CURRENT_DATE AND
DATE_ADD(last_service,INTERVAL 14 DAY) END IF WHERE order_product_id = 3;

最佳答案

UPDATE events
SET
last_service = coalesce(last_service, CURRENT_DATE),
next_service = DATE_ADD(coalesce(last_service, CURRENT_DATE), INTERVAL 14 DAY)
WHERE order_product_id = 3;

Coalesce 返回第一个非空值,因此

coalesce('2011-12-31', CURRENT_DATE)

返回 2011-12-31

coalesce(null, CURRENT_DATE)

返回 2012-02-06,即 CURRENT_DATE

关于mysql - 在 MYSQL 中添加日期和检查 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9154425/

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