我必须这样做:
if(@new_siren == null)
{
do something...
}
else
{
do something with '@new_siren != null'...
}
和它的MySQL代码,这是不能正常工作。它检查@new_siren是否为空,但else就像单独的闭包。即使@new_siren为null,我也处于'else'状态。
IF(@new_siren = null)
THEN
IF(@myClient like 'Requis')
THEN
CALL tmp_update_myReport(client_oid, 'C');
CALL tmp_update_myStatut(client_oid, 'Erreur');
END IF;
ELSE
IF(@new_siren NOT REGEXP '^[0-9]+$')
THEN
CALL tmp_update_myReport(client_oid, 'B');
CALL tmp_update_myStatut(client_oid, 'Erreur');
ELSE
IF NOT(select luhn_(LEFT(@new_siren,9),9))
THEN
CALL tmp_update_myReport(client_oid, 'A?');
CALL tmp_update_myStatut(client_oid, 'Erreur');
END IF;
END IF;
END IF;
您不能使用=
操作符比较NULL。你应该用IS NULL
。NULL= whatever
总是假的
看这个问题:为什么mysql中的null<>null=null