Mysql SQL将一列的值设置为同一表中另一列的值
我有一个有两列DATETIME的表 其中一个永远不会为空,但其中一个有时为空 我需要编写一个查询,将B列的所有空行设置为等于a列中的值Mysql SQL将一列的值设置为同一表中另一列的值,mysql,sql,Mysql,Sql,我有一个有两列DATETIME的表 其中一个永远不会为空,但其中一个有时为空 我需要编写一个查询,将B列的所有空行设置为等于a列中的值 我已经尝试过了,但是所选答案中的SQL没有执行,因为MySQL Workbench似乎不喜欢更新中的FROM。听起来您只在一个表中工作,所以类似于这样: UPDATE YourTable SET ColumnB=ColumnA WHERE ColumnB IS NULL AND ColumnA IS NOT NULL update your_table se
我已经尝试过了,但是所选答案中的SQL没有执行,因为MySQL Workbench似乎不喜欢更新中的FROM。听起来您只在一个表中工作,所以类似于这样:
UPDATE YourTable
SET ColumnB=ColumnA
WHERE
ColumnB IS NULL
AND ColumnA IS NOT NULL
update your_table
set B = A
where B is null
我不认为你要找的是另一个例子。如果您只是从同一个表中的另一列更新一列,那么您应该能够使用类似的方法
update some_table set null_column = not_null_column where null_column is null
我会这样做:
UPDATE YourTable SET B = COALESCE(B, A);
COALESCE是一个返回其第一个非空参数的函数
在本例中,如果给定行上的B不为null,则更新为no-op
如果B为null,则合并将跳过它并使用A来代替。以下是可能有助于将A列转换为B列的示例代码:
UPDATE YourTable
SET ColumnB = ColumnA
WHERE
ColumnB IS NULL
AND ColumnA IS NOT NULL;
版主注意-请不要回滚您的帖子的有效更新。