[英]Trying to include an “or” in a case on mysql - Error Code: 1241. Operand should contain 1 column(s)
[英]mysql calling procedure Error Code: 1241. Operand should contain 1 column(s)
Okey试图找到解决我问题的方法,但是其他所有人似乎都在程序内部拥有此功能,而不是在调用此功能时拥有。 猜猜我是独一无二的。
所以我创建了这个程序
USE `DB`;
DROP procedure IF EXISTS `NAME`;
DELIMITER $$
USE `DB`$$
CREATE PROCEDURE `NAME` (IN arg1 INT,IN arg2 INT, OUT arg3 varchar(10))
BEGIN
UPDATE T1 SET var1 = arg1 WHERE var2 = arg2 ;
IF((SELECT var2 FROM T1 WHERE var2 = arg2) IS NOT NULL) THEN
SET arg3 = "YEAH!!";
COMMIT;
ELSE
SET arg3 = "FAIL!!";
ROLLBACK;
END IF;
END$$
DELIMITER ;
我现在正尝试使用此代码来调用该过程
SET @arg1 = 1, @arg2 = 2;
CALL `DB`.`NAME`(@arg1, @arg2, @arg3);
SELECT @arg3;
我得到这个错误
错误代码:1241。操作数应包含1列
如果有一个比我更聪明的人可以解释我在做什么错,那我会很乐意。
编辑:找出是什么! IF语句不应被()包围
IF (SELECT var2 FROM T1 WHERE var2 = arg2) IS NOT NULL THEN
SET arg3 = "YEAH!!";
COMMIT;
这样做,它将起作用!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.