提前感谢您的帮助。你们真棒。
在存储过程中遇到CONCAT()问题。尝试使用变量创建INSERT INTO。
ERROR CODE 1054,字段列表中的未知栏“牛奶”。
Milk是要插入的值,而不是列。
这是代码:
SET @s = CONCAT('insert into ',USR,' (Product, ProdId, ListName) VALUES (',food_name,',',PRODID,',',LISTID,')');
答案 0 :(得分:2)
您需要引用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,
'\')'
);