Mysql 如何替换多列中的值?

Mysql 如何替换多列中的值?,mysql,sql,Mysql,Sql,我有一个数据库表foo,我想用空字符串替换特定列中的null值。要删除特定列x中的空值,我希望 update foo set x = '' where x is null; 有我想要的吗 update foo set x,y,z = '' where x,y,z is null; 这样做更简单: UPDATE foo SET x='', y='', z='' WHERE x IS NULL AND y IS NULL AND z IS NULL 如果只想编辑空值,也可以使用此选项 UPD

我有一个数据库表
foo
,我想用空字符串替换特定列中的
null
值。要删除特定列
x
中的空值,我希望

update foo set x = '' where x is null;
有我想要的吗

update foo set x,y,z = '' where x,y,z is null; 
这样做更简单:

UPDATE foo SET x='', y='', z='' WHERE x IS NULL AND y IS NULL AND z IS NULL
如果只想编辑空值,也可以使用此选项

UPDATE foo SET x = IF(x IS NULL, '', x), y = IF(y IS NULL, '', y) ...
这样做更简单:

UPDATE foo SET x='', y='', z='' WHERE x IS NULL AND y IS NULL AND z IS NULL
如果只想编辑空值,也可以使用此选项

UPDATE foo SET x = IF(x IS NULL, '', x), y = IF(y IS NULL, '', y) ...
你可以:

set 
   x = case when x is null then '' else x,
   y = case when y is null then '' else y,
   z = case when z is null then '' else z
   ...
你可以:

set 
   x = case when x is null then '' else x,
   y = case when y is null then '' else y,
   z = case when z is null then '' else z
   ...

这将更新所有行,其中任何列x、y或z的值为空,并且仅用于修改值为空的列中的值:

UPDATE
    foo
SET
    x = COALESCE(x, ''),
    y = COALESCE(y, ''),
    z = COALESCE(z, '')
WHERE
    NULL IN (x, y, z)

这将更新所有行,其中任何列x、y或z的值为空,并且仅用于修改值为空的列中的值:

UPDATE
    foo
SET
    x = COALESCE(x, ''),
    y = COALESCE(y, ''),
    z = COALESCE(z, '')
WHERE
    NULL IN (x, y, z)
你应该试试这个

更新foo SET x=“”,y=“”,z=“”,其中x为空,y为空,z为空



更新foo SET x=“”,y=“”,z=“”,其中x为空,y为空,z为空

但为什么???保留NULL,并用NULL替换空字符串!谢谢你所有有价值的回答。对不起,我不能投票…但是为什么???保留NULL,并用NULL替换空字符串!谢谢你所有有价值的回答。很抱歉,我无法向上投票。当所有3个x,y,z都为空时,它将只替换
NULL
。我想问题是如何替换x和/或y,和/或z。我必须为所有列做什么?当所有3个x,y,z都为空时,它将只替换
NULL
。我想问题是如何替换x和/或y,和/或z.我要为所有专栏做什么?还有一个问题。。如果我想全局删除
null
值,该怎么办?您所说的删除和全局是什么意思?如果
null
可能出现在所有列中,也可能不出现在所有列中。我想删除所有空值(即,替换为空字符串),而不考虑列名称(即,全局替换)。不,您需要说明列名。您能解释一下您的查询吗?我认为这就像如果x为null,那么用空字符串替换null值,否则什么都不做,或者用相同的值替换它。我说的对吗?还有一个问题。。如果我想全局删除
null
值,该怎么办?您所说的删除和全局是什么意思?如果
null
可能出现在所有列中,也可能不出现在所有列中。我想删除所有空值(即,替换为空字符串),而不考虑列名称(即,全局替换)。不,您需要说明列名。您能解释一下您的查询吗?我认为这就像如果x为null,那么用空字符串替换null值,否则什么都不做,或者用相同的值替换它。我说得对吗?