Mysql-移动和替换列

Mysql-移动和替换列,mysql,Mysql,我有两个具有相同列的数据库,我们希望将一些列从数据库1移动到数据库2,并用所有值替换这些列 表1数据库A上的“用户”>>表2数据库B上的“用户” 用户表有许多列,但我们想替换一些列“col1”、“col2”和“col3” 我该怎么做 多谢各位 编辑:我忘了说,我只想替换前100列的id 我的意思是每列都有100多个id,我想替换前100个。如果db1数据库上的table1有t1c1、t1c2、t1c3列,并且您只想t1c1,并且t1c3数据被复制到数据库db2的table2中,那么 insert

我有两个具有相同列的数据库,我们希望将一些列从数据库1移动到数据库2,并用所有值替换这些列

表1数据库A上的“用户”>>表2数据库B上的“用户”

用户表有许多列,但我们想替换一些列“col1”、“col2”和“col3”

我该怎么做

多谢各位

编辑:我忘了说,我只想替换前100列的id


我的意思是每列都有100多个id,我想替换前100个。如果
db1
数据库上的
table1
t1c1
t1c2
t1c3
列,并且您只想
t1c1
,并且
t1c3
数据被复制到数据库
db2
table2
中,那么

insert into db2.table2( t2c1, t2c2 ) select t1c1, t1c3 from db1.table1
应该对你有用


并确保设置了从跨数据库表或其他对象访问数据所需的权限。您还应该在
表2
上检查约束问题(如果有),因为您无法使用单个连接将数据从一个数据库移动到另一个数据库,您不能使用单个查询,您需要手动或使用第三方语言

您需要:

  • 每个数据库获取一个连接
  • 在您的表上获取一个
    主键
    用户
  • 数据库a导出数据
  • 将这些数据注入
    数据库b
PHP/PDO示例:

//创建2个连接
试一试{
$dbA=newpdo('mysql:dbname=databaseA;host=localhost','root','');
$dbB=newpdo('mysql:dbname=databaseB;host=localhost','root','');
}捕获(PDO异常$ex){
回显“连接失败:”。$ex->getMessage();
}
//从数据库中获取数据a
$result=$dbA->query(“从用户选择id、col1、col2、col3”);
//为数据库B准备替换查询
$query=“替换为用户(id、col1、col2、col3)值”;
$values=array();
foreach($结果为$行){
数组推送($values),(“..row['id']”,“..row['col1']”,“..row['col2']”,“..row['col3']”);
}
$query.=内爆(“,”,$values);
//在数据库B上执行替换查询
$stmt=$dbB->prepare($query);
$stmt->execute();

它们是否有相同的行数和主键?谢谢,它可以工作,但现在我有另一个问题。我忘了说。我只想替换前100列的id。我的意思是每个克隆都有100多个id,我想替换前100个。不全是你能再解释一下吗?你的目标是什么?这些ID是什么?当然,我加入了两个数据库用户,但对于前100个用户,一些值应该更改。我在另一个数据库中有正确的信息,前100个用户有相同的列。所以我想把正确的值替换到这个数据库中。但仅适用于前100个用户,不适用于超过100个id的用户。id保存在CLUMNS“userid”中。如果要为100个第一用户选择数据,我只需要为前100个userid的sSo移动和替换col1、col2、col3值:
select id,col1、col2、col3 FROM user ORDER BY id ASC LIMIT 100
(确保此请求在执行替换之前检索到您想要的内容)。谢谢,当两个表在同一个数据库上都可用时,它就可以工作了。无论如何,谢谢