0

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 ;

この手順の問題点を教えてください。

4

2 に答える 2

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

IF の条件は単一のスカラーである必要がありますが、カンマがあるため、値のリストとして処理しようとしています。おそらく、ANDコンマがある場所を使用するつもりでしたか?

于 2014-10-11T17:37:11.383 に答える
0

エラーはこの行にあると思います

IF(CHAR_LENGTH(inputMsisdn)=12, SUBSTR(3,inputMsisdn), inputMsisdn)しかし、私はあなたに理由を伝えることができませんでした:)

于 2012-02-08T14:26:46.837 に答える