我有一张包含以下数据的表格(当然有很多行)。
metric_id(int) | employee_id (string) | quota (double)
1 | abcd | 100
1 | wxyz | 120
我想要做的是SQL
INSERT
,它会使用特定metric_id
获取所有值。
select * from mytable where metric_id=1;
然后使用结果创建具有不同metric_id的新条目,其中配额值将按特定比例设置。 (即:metric_id = 2配额是metric_id = 1的50%)
所以插入后的结束表看起来像
metric_id(int) | employee_id (string) | quota (double)
1 | abcd | 100
1 | wxyz | 120
2 | abcd | 50
2 | wxyz | 60
这可以在一个sql语句中完成吗?如果可能的话,我想使用预备语句来防止注入。
答案 0 :(得分:2)
试试这个。它应该是你需要的。
insert into some_table
(metric_id, employee_id, quota)
select
2, employee_id, quota * 0.5
from
some_table
where
metric_id = 1
答案 1 :(得分:0)
更多替代方式(不需要where子句):
INSERT INTO TableName
(metric_id,employee_id,quota)
SELECT metric_id+1,employee_id,quota/2
FROM TableName