mysql 俩个数据库,根据表下某列对应值替换其他列对应值

2个数据库都是一样,一个新数据,一个旧数据
根据新数据某表下某列的值和旧数据某列对应的值(某列值一样,只是顺序不同),修改其他列对应的值

a数据库,b数据库都有表1,表1下都有z,x,y列
根据a数据库下表1,z列的对应值,替换到b数据库表1下的x,y列的对应值

阅读 2.4k
2 个回答

按题主的假设两个数据库a和b,分别有表都为table1(含有x y z字段)
代码如下:

方法1:

UPDATE 
    a.table1 as t1, 
    b.table1 as t2 
SET 
    t2.x = t1.x, 
    t2.y = t1.y 
WHERE
    t2.z = t1.z;

方法2:

UPDATE 
    b.table1 as t2, 
LEFT JOIN
    a.table1 as t1 
ON
    t1.z = t2.z
SET 
    t2.x = t1.x, 
    t2.y = t1.y 

方法3:

UPDATE  
    b.table1 as t2
SET 
    t2.x = (SELECT t1.x from a.table1 as t1 where t2.z = t1.z limit 0,1), 
    t2.y = (SELECT t1.y from a.table1 as t1 where t2.z = t1.z limit 0,1) 
WHERE
    t2.z = t1.z;

update b set y = (select y from a where a.x = b.x limit 1 );

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题