MySql是如何多表循环遍历更新

MySql是如何多表循环遍历更新,第1张

MySql数据库中存在大量的表结构,而且这些表都存在一个共同点,就是表中都有相同字段,比如id,name,city,adress,lat,lng。表中字段id,name,city,adress不允许为空,所以表中这几个字段的数据都是已经赋给实值的,而lat与lng(经纬度)是为空的。

现在要写一个程序,根据city,adress请求获取数据,把循环每一表中根据city,adress请求获取的数据更新到相应表,相应表中对应的那一行数据。这句话,可能你有点晕,说白了就是,先循环查询遍历表中city与adress的值,根据city,adress的值请求获取数据,更新到相应行中,这个表循环更新完了就跳到下个表中再循环更新,以此类推,直到全部更新。

从一张表更新到另一张表,SQL更新语句如果能实施两表有效连接并能指定用源表的特定字段(或基于该源字段的计算表达式)准确更新到被更新表的目标字段,那么就可以实现高效率的更新 *** 作。

具体的实现语句根据源表、目标表结构的不同以及具体的更新方式可能会有很大的变化,没有通用的写法。需要指出一点,不是所有的情况下都可以单纯用SQL语句实现高效“从一张表更新到另一张表”的。良好设计的数据结构和较为简单的更新方式有利于用SQL语句实现已有表高效更新到其他表,有些情况下是无法简单实现SQL语句高效更新的,此时就只能退而求其次,借助编程手段或低效率的游标去解决了。

下面提供一个SQL语句一张表更新到另一张表的例句供参考:

T1(ID,Name)

T2(ID,Name)

T1和T2具有相同“ID”的姓名可能不一致,现在要求将T2中不一致的姓名更新到与T1中对应ID姓名一致,实现SQL更新语句如下

update T2 a,T1 b set a.Name=b.Name where a.ID=b.ID

建议你把先要更新的数据库表数据先删除

delect 表

在需要更新的数据库用 select * into 新表 from opendatasource('SQLOLEDB','Data Source=远程数据库IPUser ID=用户名Password=密码').远程数据库名称.dbo.远程数据库表 就可以了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6149291.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存