簡體   English   中英

在MYSQL中添加日期並檢查NULL值

[英]Adding Dates and Checking NULL values in MYSQL

我一直試圖找出一個查詢,它將執行以下操作:

  1. 檢查last_service記錄,並將基於天的delivery_frequency記錄添加到mysql中的next_service date字段。
  2. 但是,如果last_serviceNULLEmpty然后更新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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM