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



在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 ;

你能告诉我这个程序有什么问题吗?

我认为错误在这一行

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

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

IF中的条件必须是单个标量,但您有逗号,因此它试图将其视为值列表。也许你想在有逗号的地方使用AND

相关内容

  • 没有找到相关文章