我一直收到此错误 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();
这编译正常,但生成运行时错误 1241 错误。
该错误是由于我未能包含 EXISTS 关键字引起的,此语句应为:
IF NOT EXISTS (SELECT * FROM categories) THEN
挑战在于原始编译没有错误。
虽然这显然属于"愚蠢的错误"的标题,但当我们在错误的地方寻找解决方案时,往往是这些类型的错误阻碍了我们的工作,根据我的经验,这些愚蠢的错误是由新手和有经验的开发人员都会犯的。
我希望当这个简单的修复就足够时,这可能有助于减少您在寻找更复杂的解决方案时浪费的时间。