我有一個包含兩個DATETIME列的表。一列的SQL設置值等於同一表中另一列的值
其中一個從不爲NULL,但其中一個有時爲NULL。
我需要寫在所選答案的查詢將設置爲B列等於值的所有空行A列中
我試圖this example,但SQL不執行,因爲MySQL工作臺沒有按在UPDATE中似乎不喜歡FROM。
我有一個包含兩個DATETIME列的表。一列的SQL設置值等於同一表中另一列的值
其中一個從不爲NULL,但其中一個有時爲NULL。
我需要寫在所選答案的查詢將設置爲B列等於值的所有空行A列中
我試圖this example,但SQL不執行,因爲MySQL工作臺沒有按在UPDATE中似乎不喜歡FROM。
聽起來你只在一個表中工作,所以是這樣的:
update your_table
set B = A
where B is null
UPDATE YourTable
SET ColumnB=ColumnA
WHERE
ColumnB IS NULL
AND ColumnA IS NOT NULL
我不認爲其他的例子是,你在找什麼。如果你只是從同一個表中的另一列更新一列,你應該可以使用這樣的東西。
update some_table set null_column = not_null_column where null_column is null
我會做這種方式:
UPDATE YourTable SET B = COALESCE(B, A);
COALESCE是返回其第一個非空參數的函數。
在這個例子中,在B上的給定行不爲空,則更新是一個空操作。
如果B爲空,則COALESCE將跳過它並使用A代替。
UPDATE YourTable
SET ColumnB = ColumnA
WHERE
ColumnB IS NULL
AND ColumnA IS NOT NULL;