[英]Adding Dates and Checking NULL values in MYSQL
我一直试图找出一个查询,它将执行以下操作:
last_service
记录,并将基于天的delivery_frequency
记录添加到mysql中的next_service
date字段。 last_service
是NULL
或Empty
然后更新last_service
今天的日期,但步骤1之后。 我知道如何执行第一步,即以下查询:
UPDATE events SET next_service = DATE_ADD(last_service,INTERVAL 14 DAY) WHERE order_product_id = 3;
但是有些时候我发现第二步比较棘手。 有人可以告诉我该怎么做吗?
我正在用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('2011-12-31', CURRENT_DATE)
返回2011-12-31
和
coalesce(null, CURRENT_DATE)
返回2012-02-06
,即CURRENT_DATE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.