gpt4 book ai didi

mysql动态sql

转载 作者:行者123 更新时间:2023-11-29 05:40:02 24 4
gpt4 key购买 nike

我对在准备执行存储过程中使用的以下代码有疑问:

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 调用空变量。

我也试过:

set @param_cod_empresa_pad='null';
set @condicion18='and pc.cod_empresa_pad is ? ';

但没用。

最佳答案

您不能使用 is带参数。
或者,您可以使用 <=>运算符 =比较 null 时返回 true值(value)观。

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 <=> ? ';

关于mysql动态sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7488237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com