存储过程判断输入条件的疑点
存储过程判断输入条件的疑问
做一个查询,用存储过程,查询条件有多项,比如部门、编号、姓名
如果只输入一个部门号,其余查询条件为空,过程中select 语句如何编写?
我是这样的
select a.bm_bm,a.bm_ry,a.mc
from ryxx a
where (a.bm_bm = bm_bm or bm_bm is null or bm_bm = '')
and (a.bm_ry = bm_ry or bm_ry is null or bm_ry = '')
and (a.mc = mc or mc is null or mc = '');
其中 bm_bm,bm_ry,mc是存储过程调用时输入的参数
但是在执行过程时,输入的条件并没有起作用,输出结果是表ryxx的所有记录。
请教下,这个select 应该怎么写?
------解决方案--------------------
传入参数名不要与实际字段名相同。这样MYSQL将无法分清哪个是字段,哪个是变量。
做一个查询,用存储过程,查询条件有多项,比如部门、编号、姓名
如果只输入一个部门号,其余查询条件为空,过程中select 语句如何编写?
我是这样的
select a.bm_bm,a.bm_ry,a.mc
from ryxx a
where (a.bm_bm = bm_bm or bm_bm is null or bm_bm = '')
and (a.bm_ry = bm_ry or bm_ry is null or bm_ry = '')
and (a.mc = mc or mc is null or mc = '');
其中 bm_bm,bm_ry,mc是存储过程调用时输入的参数
但是在执行过程时,输入的条件并没有起作用,输出结果是表ryxx的所有记录。
请教下,这个select 应该怎么写?
------解决方案--------------------
传入参数名不要与实际字段名相同。这样MYSQL将无法分清哪个是字段,哪个是变量。