Aquí hay una forma:
select id, ((var1 is null) + (var2 is null) + (var3 is null)) as var4
from table t;
MySQL trata los valores booleanos como enteros, siendo verdadero 1
y falso siendo 0
. Puedes simplemente sumarlos para obtener el total.
Como actualización:
update table t
set var4 = ((var1 is null) + (var2 is null) + (var3 is null));
Como nota, MySQL no es compatible con ISNULL()
. Eso es más una función de SQL Server. Pero de todos modos no es el estándar ANSI, por lo que generalmente es mejor usar coalesce()
.