gpt4 book ai didi

mysql - mysql如何根据存储过程中的参数动态创建where条件?

转载 作者:行者123 更新时间:2023-11-30 22:52:20 25 4
gpt4 key购买 nike

我创建了一个存储过程,我想在其中根据参数列出员工。该过程有一些参数,其中一个我想用于类型(例如:分支机构、部门等),另一个是与之对应的 ID。

我想为变量创建 where 条件。

我该怎么做?

DELIMITER $$

CREATE PROCEDURE Emp_details(IN div_type VARCHAR(100), IN id INT, OUT emp_name VARCHAR(100))
BEGIN

DECLARE cond VARCHAR(100);

IF div_type = 'branch' THEN
SET cond = 'branch_id='+id;
ELSEIF div_type = 'department' THEN
SET cond = 'department_id='+id;
ELSEIF div_type = 'emp' THEN
SET cond = 'employee_master_id='+id;
ELSE
SET cond = '';
END IF;


SELECT
emp_fullname INTO emp_name
FROM armr_employee_master
WHERE +cond ;



END$$

最佳答案

只需将 IF 转换为 WHERE:

SELECT emp_fullname
INTO emp_name
FROM armr_employee_master
WHERE id = CASE div_type
WHEN 'branch' THEN branch_id
WHEN 'department' THEN department_id
WHEN 'emp' THEN employee_master_id
END

关于mysql - mysql如何根据存储过程中的参数动态创建where条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27797875/

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