Mysql8.0.32
使用 when case 语句 根据不同的判断条件 给某一列赋不同的值,代码如下
update als set 存在问题=case
when instr(名称,"-ZD-ONU")=0 and isnull(名称)=0 and isnull(上联POS)=0 and isnull(所属地市)=0 and isnull(所属区县)=0 and isnull(所属 OLT)=0 and isnull(所属PON口)=0 and isnull(设备IP地址)=0 then "命名不规范"
when instr(名称,"-ZD-ONU")=0 and (isnull(名称)=1 and isnull(上联POS)=1 and isnull(所属地市)=1 and isnull(所属区县)=1 and isnull(所 属OLT)=1 and isnull(所属PON口)=1 and isnull(设备IP地址)=1) then "命名不规范,缺失数据"
when instr(名称,"-ZD-ONU")>0 and (isnull(名称)=1 and isnull(上联POS)=1 and isnull(所属地市)=1 and isnull(所属区县)=1 and isnull(所 属OLT)=1 and isnull(所属PON口)=1 and isnull(设备IP地址)=1) then "缺失数据"
else ""
end;
als表中有8万条数据,执行上述语句后更新了1万多条,但是查看更新的值,发现全部都是"命名不规范",也就是第一个条件返回的结果,但实际情况不是这样的,实际的命名不规范的很少,缺失数据的很多。
这个问题要怎么解决呢?