我对我在准备-执行存储过程中使用的以下代码有一个问题:
if(param_cod_empresa_pad='') then
set @param_cod_empresa_pad=true;
set @condicion18='and ? ';
elseif(param_cod_empresa_pad='0') then
set @param_cod_empresa_pad=null;
set @condicion18='and pc.cod_empresa_pad is ? ';
else
set @param_cod_empresa_pad=param_cod_empresa_pad;
set @condicion18='and pc.cod_empresa_pad=? ';
end if;当param_cod_empresa_pad='0‘的第二个条件不起作用时,我必须这样写它:
set @param_cod_empresa_pad=true;
set @condicion18='and pc.cod_empresa_pad is null and ? ';有人知道为什么吗?我想知道在mysql中是否有更好的方式使用动态sql调用null变量。
我也试过了:
set @param_cod_empresa_pad='null';
set @condicion18='and pc.cod_empresa_pad is ? ';但没起作用。
发布于 2011-09-21 00:10:28
不能将is与参数一起使用。
或者,您可以使用<=>运算符,它是一个在比较null值时返回true的=。
null = null -> false
null <=> null -> true
1 <=> 1 -> true
1 <=> 2 -> false
elseif(param_cod_empresa_pad='0') then
set @param_cod_empresa_pad=null;
set @condicion18='and pc.cod_empresa_pad <=> ? ';https://stackoverflow.com/questions/7488237
复制相似问题