【问题标题】:Error Code: 1241 Operand should contain 1 column(s) MySQL错误代码:1241 操作数应包含 1 列 MySQL
【发布时间】:2012-01-11 19:30:20
【问题描述】:

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

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

【问题讨论】:

    标签: mysql mysql-error-1241


    【解决方案1】:

    我认为错误在这一行

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

    【讨论】:

      【解决方案2】:
      IF(CHAR_LENGTH(inputMsisdn)=12, SUBSTR(3,inputMsisdn), inputMsisdn)
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-16
        • 1970-01-01
        • 2013-03-27
        • 2016-12-23
        • 1970-01-01
        • 1970-01-01
        • 2013-10-04
        • 2023-03-21
        相关资源
        最近更新 更多