Код ошибки: 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)
но я не могу сказать вам, почему:)