我正在尝试获取动态查询的结果以用于IF条件,但我总是收到此错误消息Error Code: 1210 Incorrect arguments to EXECUTE
我希望发生的是,如果列的内容为空,它将不会向totalamt列添加100。
如果您对此问题有其他解决方案或方法,请帮助我改进或解决我的代码。
这是我的代码:
set total = 20;
set x = 0;
set counter = 1;
WHILE (x < total) DO
SET @cGuest = (CONCAT('name', counter));
SET @nGuest = CONCAT('SELECT ',@cGuest,' into @c1 FROM guest WHERE ',iEmpID,' = idemp;');
PREPARE stmt FROM @nGuest;
SET @c1 = c2;
EXECUTE stmt; -- USING @c1;
SELECT @c1 as result;
DEALLOCATE PREPARE stmt;
IF @c1 != '' or ' ' or NULL THEN
UPDATE employee
SET
totalamt = totalamt + 100
WHERE
iEmpID = idemp;
set x = x + 1;
set counter = counter + 1;
ELSE SELECT 'ERROR';
set x = x + 1;
set counter = counter + 1;
END IF;
END WHILE;
我认为SELECT的用法不正确。。。进入
请尝试这个:
SET @nGuest = CONCAT('SELECT ',@cGuest,' into @c1 FROM guest WHERE ',iEmpID,' = idemp;');