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值,否则什么都不做,或者用相同的值替换它。我说得对吗?