mysql 自定义函数传参并根据参数判断执行不同的sql

 

 

delimiter $$
drop function if exists checkPayoffStatus$$
create function checkPayoffStatus( mergeId INT(11),payoffType smallint(1) )
returns int


begin
declare count int; 
     
IF payoffType = 1 THEN
      set count =  ( SELECT COUNT(payoff_status) count   FROM bu_payoff WHERE id IN (    SELECT payoff_id FROM bu_payoff_merge_sub WHERE merge_id = mergeId AND payoff_type = 1) AND payoff_status NOT IN (6,8)  );
    ELSE
      set count =  ( SELECT COUNT(payoff_status) count   FROM bu_payoff_one WHERE id IN (    SELECT payoff_id FROM bu_payoff_merge_sub WHERE merge_id = mergeId AND payoff_type = 2) AND payoff_status NOT IN (6,8)  );
    END IF; 
 
return count;
end $$

delimiter ;

 

SELECT checkPayoffStatus(134,2);

你可能感兴趣的:(mysql)