2012-01-11 66 views
0

在MySQL中执行存储过程时,出现错误消息'操作数应该包含1列'。错误代码:1241操作数应该包含1列MySQL

以下是存储过程:

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 ; 

你能告诉我什么是这个过程中的问题?

回答

0

我认为错误是在这条线

IF(CHAR_LENGTH(inputMsisdn)=12, SUBSTR(3,inputMsisdn), inputMsisdn)但我不能告诉你为什么:)

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

在IF条件必须是一个标,但你必须逗号所以它的努力将其视为价值清单。也许你的意思是使用AND你有逗号?

相关问题