不确定在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';