我有一个包含两个DATETIME列的表.
其中一个永远不是NULL,但其中一个有时是NULL.
我需要编写一个查询,将列B的所有NULL行设置为等于A列中的值.
我试过这个例子,但所选答案中的SQL没有执行,因为MySQL Workbench似乎不喜欢UPDATE中的FROM.
mu *_*ort 135
听起来你只在一张桌子上工作,所以这样的事情:
update your_table
set B = A
where B is null
Run Code Online (Sandbox Code Playgroud)
Ica*_*rus 18
UPDATE YourTable
SET ColumnB=ColumnA
WHERE
ColumnB IS NULL
AND ColumnA IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
Bil*_*win 14
我会这样做:
UPDATE YourTable SET B = COALESCE(B, A);
Run Code Online (Sandbox Code Playgroud)
COALESCE是一个返回其第一个非null参数的函数.
在此示例中,如果给定行上的B不为null,则更新为无操作.
如果B为null,则COALESCE会跳过它并使用A代替.
以下示例代码可能会帮助您将 A 列复制到 B 列:
UPDATE YourTable
SET ColumnB = ColumnA
WHERE
ColumnB IS NULL
AND ColumnA IS NOT NULL;
Run Code Online (Sandbox Code Playgroud)
我认为您要找的不是其他示例。如果您只是从同一张表的另一列更新一列,则应该可以使用类似的内容。
update some_table set null_column = not_null_column where null_column is null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
112567 次 |
| 最近记录: |