簡體   English   中英

mysql調用過程錯誤代碼:1241。操作數應包含1列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM