gpt4 book ai didi

mysql - if else在mysql的存储过程中

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

大家好,我有点困惑。我只想问这是否是正确的语法。我在其他帖子中尝试了 if else stored proc 查询,但它不起作用。

CREATE PROCEDURE `addBarberCommission`(IN `empID` INT, IN `ioIN` VARCHAR(11))
BEGIN
INSERT INTO `attendance_log` (`emp_id`, `io`) VALUES (`empID`, `ioIN`);
IF (SELECT e.position, e.status, a.io FROM employee e INNER JOIN
attendance_log a WHERE a.emp_id = `empID`
AND e.position = 'Barber'
AND e.status = 'Active'
AND a.io = 'Time In') THEN
INSERT INTO `barber_employee` (`emp_id`, `tot_sal`) VALUES (`empID`, 0);
END IF;
END #

该过程有效,但是当我调用该存储过程时,CALL addBarberCommission(1, 'Time In'); 它会产生一个

ERROR CODE: 1241. Operand should contain 1 column(s)

我只是要求澄清。谢谢

最佳答案

你需要使用EXISTS:

CREATE PROCEDURE `addBarberCommission`(IN `empID` INT, IN `ioIN` VARCHAR(11))
BEGIN
INSERT INTO `attendance_log` (`emp_id`, `io`) VALUES (`empID`, `ioIN`);
IF EXISTS (SELECT e.position, e.status, a.io --here
FROM employee e
JOIN attendance_log a
WHERE a.emp_id = `empID`
AND e.position = 'Barber'
AND e.status = 'Active'
AND a.io = 'Time In') THEN
INSERT INTO `barber_employee` (`emp_id`, `tot_sal`) VALUES (`empID`, 0);
END IF;
END #

DBFiddle Demo

关于mysql - if else在mysql的存储过程中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51233315/

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