在MySQL表中的行上复制和替换字段值

时间:2011-06-14 17:27:47

标签: mysql

不确定这是否可以在MySQL中使用,但我希望对以下内容有一些指导或指导。

说我有一张桌子

Col_1 Col_2 col_3
AAA   56    3
AAA   99    3
AAA   100   3
BBB   43    1
BBB   66    1
CCC   33    0

我希望复制Col_1 = AAA的行,但将“AAA”替换为“DDD”并将col_3设置为0。 即在执行适当的命令后,该表看起来像

Col_1 Col_2 col_3
AAA   56    3
AAA   99    3
AAA   100   3
BBB   43    1
BBB   66    1
CCC   33    0
DDD   56    0
DDD   99    0
DDD   100   0

进行一些阅读时,“选择...进行更新”可能是一个起点,但是如何构建适合这种情况的语句相对无能为力。

非常感谢任何建议!感谢。

注意:尽管Col_2是我在这个例子中展示的唯一一个未改变的列,但实际上我的问题有大约10个未改变的列,但为了简单起见我只显示了一个;重点是,不应该讨论一个解决方案,明确地只关注一个未改变的列...希望这是明确的。

1 个答案:

答案 0 :(得分:0)

尝试使用UNION子句:

SELECT Col_1, Col_2, Col_3 FROM tablename
UNION
SELECT 'DDD' AS 'Col_1', Col_2, '0' AS Col_3
FROM tablename
WHERE Col_1 = 'AAA';