mysql将列字段视为空(如果为空)

用户名

嗨,这是我要查询的表:

mytable
id, name
1,name1
2,name2
3,' ' //this is a white space
4,null

但是当我使用此查询将空白列设置为null时:

update mytable set `name`= CASE `name` WHEN '' THEN NULL ELSE `name` END;

它甚至更新其中有空格的列字段。所以结果是:

1,name1
2,name2
3,null
4,null

为什么mysql为什么也将空格视为''空白?是否可以选择将表中的空白仅替换为null并让空白为空白?

古尔温德·辛格(Gurwinder Singh)

因为MySQL对待''' '甚至' '相同。

尝试查询:

select '' = '             '

它将返回1表示真实。因此,MySQL将任何长度的所有空白字符串都视为相等。

如果要更新长度为0的空字符串行,请使用以下Length函数:

UPDATE mytable 
SET 
    `name` = NULL
WHERE
    `name` = '' AND LENGTH(`name`) = 0;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章