我正在尝试使用以下mysql代码在名称取决于某个值的列上插入。它给我错误,“字段列表”中的“ some_percent”未知列“ some_percent”

set @SplitState = `some_percent`;
SET @ID = uuid();
INSERT INTO `rspca_donations`(`id`, `@SplitState`) values (@ID, '100');


有人可以建议正确的方法吗?

最佳答案

您不能以这种方式使用用户变量来表示列名。一种选择是在MySQL中使用预处理语句:

SET @SplitState = 'some_percent';
SET @ID = UUID();
SET @sql = CONCAT('INSERT INTO rspca_donations (id, ', @SplitState, ') VALUES (?, 100)');
PREPARE stmt FROM @sql;
EXECUTE stmt USING @ID;

关于mysql - MySQL:Insert语句中的用户定义变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55237073/

10-09 05:03
查看更多