替换MySQL中的空白列。
有时,当特定列在数据库中没有值时,您希望运行某些特殊进程。
但是在MySQL的情况下,找到没有价值并不容易。
有两种类型的"无价值"
你可能认为"没有价值"是"没有价值"。
但是数据库中有两种类型的"无价值"。
- 空白(blank)
- 空值(NULL)
空白(blank)
空白是一种像""
的状态。
它就像一个什么都没包含的盒子。
空值(NULL)
数据库中的NULL为NULL
。
这就像没准备状态。
blank与NULL不同
根据下面的SQL,空白与NULL不同。
SQL
select (CASE WHEN ""=NULL THEN 1 ELSE 0 END) as null_is_blank from dual;
结果
null_is_blank 0
但是在!=''
的情况下,空白似乎与NULL相同。
SELECT * FROM tbl_name WHERE str!='';
→ 排除空白和NULL。
MySQL中的空白和空白
所以为了处理"没有价值",我们应该重新选择NULL或空白。
替换空白
然后我们尝试替换空白。
但我们仍有问题。
在Oracle中,我们可以使用DECODE
来替换一些特定值。
在MySQL中,我们没有DECODE
。
所以它需要两个步骤。
- 用nullif替换NULL为空
- 然后用
ifnull
将NULL替换为特定值
ifnull(nullif(目标列,''),'特定值')
最后
- 有"不值"的不同类型。空白和NULL。
- MySQL没有DECODE功能。
- 为了替换空白,您应该用NULL替换它并用特定值替换NULL。