我正尝试使用以下mysql代码在名称由某个值决定的列上插入。它给我一个错误,即“字段列表”中的“ some_percent”未知列“ some_percent”
set @SplitState = `some_percent`;
SET @ID = uuid();
INSERT INTO `rspca_donations`(`id`, `@SplitState`) values (@ID, '100');
有人可以建议正确的方法吗?
答案 0 :(得分:1)
您不能以这种方式使用用户变量来表示列名。一种选择是在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;