mysql - 如何将mysql表中某列内容选中的一组行复制到同一张表中?

标签 mysql

如何将基于一列内容的一组行复制到同一个表中,并将复制行中条件列的内容更改为其他内容。

select x, y, z from table A where z="B" ... 

copy into table A with incremented IDs ...

和 在新的重复行中更改 z="C"

编辑: 我可以执行以下操作(它会起作用吗?)- 主索引键是自动递增的

INSERT INTO table A (x, y, z) SELECT x, y, z FROM table A WHERE z="B";

但是如何同时将新的重复行中的 z="B"更改为 z="C"?

请编辑/改进我的尝试。谢谢。

最佳答案

你可以使用联合:

SELECT x,y
CASE z
    WHEN 'B' then 'C' else  z
END
FROM A
ORDER By id

union

SELECT x,yz
FROM A
ORDER By id

关于mysql - 如何将mysql表中某列内容选中的一组行复制到同一张表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51833827/

相关文章:

mysql - SQLzoo JOIN 教程 #13

mysql - 如何在sql中添加两个选择列的总和?

php - 关闭窗口时更改 MySQL 数据库

mysql - 需要重写 SQL 语句才能提供准确的结果

mysql - 为什么 Django 在 Change List View Page 中进行不必要的 SQL 查询?

php - 帮助分页

mysql - 查询一对多对多表关系的最有效方法

php - mysql查询的问题

mysql - 需要有关涉及多个表的 SQL 查询的帮助 - 加入不是一个选项

mysql - 如何删除数据库中的外键?