sql insert语句设置行比例

时间:2014-04-01 16:43:12

标签: java mysql sql

我有一张包含以下数据的表格(当然有很多行)。

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语句中完成吗?如果可能的话,我想使用预备语句来防止注入。

2 个答案:

答案 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