我有同样的问题; 结果不是我在过程中的 SELECT INTO 查询(是的,在 MySQL 中有效),而是稍后在该外部过程中对另一个具有该实际错误的过程进行的调用。
我只是在使用模拟值在程序之外确认我的查询后才发现这一点:
SET @this_RID=0, @this_RANo=0, @this_modpos=0;
SELECT Response_ID, Response_attempt_No, position, UNCOMPRESS(RAMX.`data`)
INTO @this_RID, @this_RANo, @this_modpos, @this_XML
FROM RAMX
WHERE
Response_ID>=@this_RID AND Response_attempt_No>=@this_RANo AND position>=@this_modpos
AND (NOT (Response_ID=@this_RID AND Response_attempt_No=@this_RANo AND position=@this_modpos))
AND module_ID=2
AND `data` <> ""
ORDER BY Response_ID, Response_attempt_No, position
LIMIT 1;
SELECT @this_RID, @this_RANo, @this_modpos;
+-----------+------------+--------------+
| @this_RID | @this_RANo | @this_modpos |
+-----------+------------+--------------+
| 451994 | 0 | 1 |
+-----------+------------+--------------+
1 row in set (0.00 sec)
在更正它调用的过程之前,调用外部过程会给出此错误:
错误 1054 (42S22):“字段列表”中的未知列“数据”