php - 使用相同的列数和名称从一个表复制到另一个表

标签 php mysql pdo

我有以下两个表...

Table1
colA    colB    colC    
1       a       w    
2       b       w    
3       c       s        
4       b       g    
5       n         


Table2
colA    colB    colC    
1       w       f    
2       w       r    
3       s       g    

我想使用 UPDATE 查询从表 1 复制到表 2,我遇到的问题是我必须设置所有列名,其中每个表有 100 列,但我也有相同的列数和名称。

在 php 中运行查询更新的简单方法是什么?

是否有一些 foreach 东西可能...

这是我现在拥有的...

public function update($id){
            try {
                UPDATE table1 b 
                INNER JOIN connect c 
                ON c.ID = b.ID 
                INNER JOIN table2 a 
                ON a.ID_a = c.ID_a 
                SET b.colA = a.colA,
                b.colB = a.colB,
                b.colC = a.colC
                .
                .
                .
                .
                . coontinue here all column name..
                .
                .
                WHERE a.ID_a = '".$id."' ";
             } catch(PDOException $e) {
                 $e->getMessage();
            }
            return false;
        }

有什么想法吗?

最佳答案

您不需要通过 UPDATE 语法来完成。您可以使用 INSERT..SELECT:

INSERT INTO `table2` SELECT * FROM `table1`

如果您在两个表中具有完全相同的结构,这将起作用。如果没有,您必须编写列名(并将列从第一个表映射到第二个表)。

如果你想替换相应的值,那么你应该先删除当前值:

DELETE FROM `table2` WHERE `colA` IN (SELECT `colA` FROM `table1`)

关于php - 使用相同的列数和名称从一个表复制到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18358917/

相关文章:

sql - 获取尚未分配给成员查询的角色

php - 我可以在 PHP 中混合使用 MySQL API 吗?

php - 显示用户个人资料页面 PHP

php - 尝试使用MySQL返回用户信息

php - CakePHP 3.0 - 在实体中使用 MySQL 函数

php - yii2 中的最佳匹配结果查询

php - PDO::rowCount() 返回 -1

php - 从 varChar 列中检索日期格式的 Brithdays

java - 将相同的数据插入属于不同服务器的两个表中

mysql - 极其缓慢的 MySQL 查询