【问题标题】:MySQL Error 1241 Operand should contain 1 column(s) on IF EXISTSMySQL 错误 1241 操作数应在 IF EXISTS 上包含 1 列
【发布时间】:2018-08-29 09:56:43
【问题描述】:

我收到此错误 1241 操作数应在 MySQL 的存储过程中包含 1 列。

此错误已在其他帖子中被高度引用,但这些都不适合我的情况,因此我创建了一个问题和答案来帮助可能正在努力解决此错误来源的其他人,其中其他答案不要导致解决方案。

这是我的代码的简化:

DELIMITER //
DROP PROCEDURE IF EXISTS TEST
//
CREATE PROCEDURE TEST()
BEGIN
    IF NOT (SELECT * FROM categories) THEN
        SELECT 1;
    END IF;
END;
//

CALL TEST();

这样编译OK,但是会产生运行时错误1241错误。

【问题讨论】:

    标签: mysql if-statement stored-procedures runtime-error exists


    【解决方案1】:

    这个错误是由于我没有包含 EXISTS 关键字造成的,这个语句应该是:

    IF NOT EXISTS (SELECT * FROM categories) THEN
    

    挑战在于原始编译没有错误。

    虽然这显然属于“愚蠢的错误”的标题,但当我们在错误的地方寻找解决方案时,往往是这些类型的错误阻碍了我们的工作,而根据我的经验,这些类型的错误新手和有经验的开发人员都会犯一些愚蠢的错误。

    我希望这可能有助于减少您在寻找更复杂的解决方案时浪费的时间,只要这个简单的修复就足够了。

    【讨论】:

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