不确定在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个未更改的列,但为简单起见,我仅显示了一个。关键是,不应讨论将解决方案明确地集中在仅一栏不变的问题上,希望这是明确的。

最佳答案

尝试使用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';

10-07 20:00
查看更多