嗨,这是我要查询的表:
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并让空白为空白?
因为MySQL对待''
,' '
甚至' '
相同。
尝试查询:
select '' = ' '
它将返回1表示真实。因此,MySQL将任何长度的所有空白字符串都视为相等。
如果要更新长度为0的空字符串行,请使用以下Length
函数:
UPDATE mytable
SET
`name` = NULL
WHERE
`name` = '' AND LENGTH(`name`) = 0;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句