我已經查看了 SO,并且有類似的問題,但我似乎無法弄清楚如何做我需要的事情。
出于這個問題的目的,我的表有 3 列:reconciled(tinyint)、datereconciled(timestamp, CAN BE NULL) 和dateadded(timestamp)。
對于我的代碼邏輯,如果reconciled==1,應該有一個時間戳datereconciled,但我最近注意到這并不總是發生。datereconciled修復了代碼,但現在在應該有時間戳的地方有很多 NULL 值。因此,對于reconciled==1 AND datereconciled==NULL 的所有行,我想“更新” FROM dateaddedINTO的值datereconciled。如果 中已經有時間戳datereconciled,請不要理會它。如果reconciled==0,請不要理會它。
uj5u.com熱心網友回復:
您應該能夠使用簡單的更新:
UPDATE YourTable
SET DateReconciled = DateAdded
WHERE DateReconciled IS NULL
AND reconciled = 1;
uj5u.com熱心網友回復:
你基本上已經寫了查詢
UPDATE table SET datereconciled = dateadded
WHERE reconciled = 1
AND datereconciled IS NULL
uj5u.com熱心網友回復:
我想我必須在我的更新查詢中使用一個選擇,所以我是過于復雜的事情的受害者!但是,在提供答案之前,這是我過于復雜的自我發現的答案:
UPDATE
`transactions` AS `dest`,
(
SELECT
*
FROM
`transactions`
WHERE
`reconciled` = 1 AND `datereconciled` IS NULL
) AS `src`
SET
`dest`.`datereconciled` = `src`.`dateadded`
;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/518126.html
標籤:mysql
