Код ошибки: 1241 Операнд должен содержать 1 столбец (ы) MySQL - PullRequest
0 голосов
/ 11 января 2012

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

0 голосов
/ 11 октября 2014
IF(CHAR_LENGTH(inputMsisdn)=12, SUBSTR(3,inputMsisdn), inputMsisdn)

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

0 голосов
/ 08 февраля 2012

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

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

...