错误代码:1241操作数应包含1列MySQL

时间:2012-01-11 19:30:20

标签: mysql mysql-error-1241

我在MySQL中执行存储过程时收到错误消息'操作数应包含1列'。

以下是存储过程:

DELIMITER $$

USE `test`$$

DROP PROCEDURE IF EXISTS `test_proc`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `test_proc`(IN inputMsisdn BIGINT)
BEGIN

    IF(CHAR_LENGTH(inputMsisdn)=12, SUBSTR(3,inputMsisdn), inputMsisdn)
    THEN
        SELECT rmnum FROM testbase WHERE msisdn=inputMsisdn;
    END IF;
    END$$

DELIMITER ;

请告诉我这个程序中的问题是什么?

2 个答案:

答案 0 :(得分:0)

我认为错误就在这一行

IF(CHAR_LENGTH(inputMsisdn)=12, SUBSTR(3,inputMsisdn), inputMsisdn)但我无法告诉你原因:)

答案 1 :(得分:0)

IF(CHAR_LENGTH(inputMsisdn)=12, SUBSTR(3,inputMsisdn), inputMsisdn)

IF中的条件必须是单个标量,但是您有逗号,因此它会尝试将其视为值列表。也许您打算在逗号处使用AND