预先感谢您的帮助。你们太棒了。
在存储过程中使用 CONCAT() 时遇到问题。尝试使用变量创建 INSERT INTO。
错误代码 1054,字段列表中存在未知列“牛奶”。
Milk 是要插入的值,而不是列。
这是代码:
SET @s = CONCAT('insert into ',USR,' (Product, ProdId, ListName) VALUES (',food_name,',',PRODID,',',LISTID,')');
最佳答案
您需要引用 food_name
的值:
SET @s = CONCAT('insert into ',USR,' (Product, ProdId, ListName) VALUES (\'',food_name,'\',',PRODID,',',LISTID,')');
事实上,MySQL 将看到不带引号的值 Milk
并假设它是列名而不是字符串文字。
如果列表中的其他列也是字符类型,则您也需要对这些列执行相同的操作。例如,假设 ListName
也是字符类型,您的过程将是:
SET @s = CONCAT(
'insert into ',
USR,
' (Product, ProdId, ListName) VALUES (\'',
food_name,
'\',',
PRODID,
',\'',
LISTID,
'\')'
);
关于mysql - 存储过程 CONCAT() 错误代码 1054,未知列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25097831/