2012-01-11 27 views
0

MySQLでストアドプロシージャを実行すると、「オペランドには1列が含まれています」というエラーメッセージが表示されます。続きエラーコード:1241オペランドに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 ; 

あなたは、この手順の中にいただきました!問題を教えてくださいことはできますか?

答えて

0

私はエラーがこの行に

IF(CHAR_LENGTH(inputMsisdn)=12, SUBSTR(3,inputMsisdn), inputMsisdn)だと思いますが、私はIFの条件が単一のスカラでなければならないが、それはしようとしているので、あなたはカンマを持っているあなたに、なぜ:)

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

を教えcouldntのそれを値のリストとして扱います。おそらく、あなたはカンマがあるところでANDを使うつもりでしたか?

関連する問題