如何使用mysql复制多行但更改一个字段

如何使用mysql复制多行但更改一个字段,mysql,Mysql,假设我有一张桌子,比如: val cols cole 1 1 3 2 1 5 4 1 9 2 6 8 3 1 9 1 4 9 2 9 9 我需要一个查询,该查询复制val=2的所有行,但将这些新行的val更改为5 导致: val cols cole 1 1 3 2 1 5 4 1 9 2 6 8 3 1 9 1 4 9 2 9 9 5 1 5 5

假设我有一张桌子,比如:

val cols cole
1   1    3
2   1    5
4   1    9
2   6    8
3   1    9
1   4    9
2   9    9
我需要一个查询,该查询复制val=2的所有行,但将这些新行的val更改为5

导致:

val cols cole
1   1    3
2   1    5
4   1    9
2   6    8
3   1    9
1   4    9
2   9    9
5   1    5
5   6    8
5   9    9

您想要
选择
查询还是
插入

这里有一个
选择
,应该适合您:

select val, cols, cole
from your_table
UNION ALL
select 5 as val, cols, cole
from your_table
where val = 2
这里有一个插入的

insert into your_table (val, cols, cole)
select 5 as val, cols, cole
from your_table
where val = 2

为我节省了很多时间。谢谢