Код ошибки: 1241 Операнд должен содержать 1 столбец (ы) MySQL

Я получаю сообщение об ошибке "Операнд должен содержать 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 ;

Подскажите, пожалуйста, в чем проблема в этой процедуре?

2 ответа

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

Условие в IF должно быть одним скаляром, но у вас есть запятые, поэтому он пытается рассматривать его как список значений. Возможно, вы хотели использовать AND где у вас запятые?

Я думаю, что ошибка в этой строке

IF(CHAR_LENGTH(inputMsisdn)=12, SUBSTR(3,inputMsisdn), inputMsisdn) но я не могу сказать вам, почему:)

Другие вопросы по тегам