根据两个字段值集合查询所有表数据后,更新其中一个字段。

Muly599 2020-04-25 12:57:29
在一个数据库中,有11张表(t1...t11),11张表都存在三个相同的字段a,b,现在想根据a和b两个字段的值t.a=x and t.b like%y%,去select 11张表中所有符合条件的数据,然后update set t.a=z where 接以上查询数据。 select t1.a from t1 where t1.a=x and t1.b like%y%, 然后update set t1.a=z; 初步想法是搞一个循环更新,但是sql不支持数组,集合又不合适。t.a(x)、t.b(y)、t.a(z)的取值都是一个集合,都是6000个,简单来说就是根据 t.a和t.b的条件查询所有表的t.a,然后更新t.a 有什么好的解决办法吗? 单表数据在2万行左右。
...全文
99 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lhdz_bj 2020-04-26
  • 打赏
  • 举报
回复
merge into t using
(
select a,b,z from t1 where a...and b...
union all
select a,b,z from t2 where a... and b...
...
union all
select a,b,z from t11 where a... and b...
) u
on (t.a=u.a and t.b=u.b)
when matched then
update set t.a=u.z;
大概就这思路吧。
liu志坚 2020-04-26
  • 打赏
  • 举报
回复
可以把 这11个表的相关的几个相同字段 及主键合并到一个表中

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧