有2个表: A表,B表,
修改B中一个叫b的字段,b的值是由A表中a字段的值构成的,比如 : ttt,yyy,uuu, 这样的
如下图:
A
ID a
1 tttt
2 yyy
3 uuu
B
ID IDs b
1 1,2,3, ttt,yyy,uuu,
现在我要把A表中叫ttt的修改成tttttt.
怎么样也把B表中也修改.
改成tttttt,yyy,uuu,
6 个解决方案
#1
直接update
#2
update t set a=replace(a,'ttt','tttttt') from A t
update t set b=replace(b,'ttt','tttttt') from B t
#3
我的意思是用一句SQL语句,
就是在修改A表的时候,同时把B表中的也修改了
就是在修改A表的时候,同时把B表中的也修改了
#4
而且请你仔细看看,我B表中字段的值是什么,我只想修改它其中一段,不是整个字段的值
#5
很不幸的說:一句sql還不能修改兩個表
要么你用兩句,要么你用觸發器;
update t set b=replace(b,'ttt','tttttt') from B t
和
update t set b= 'tttttt' from B t
這兩種寫法有什么不同你運行一下就知道
#6
update A set a='tttttt' union all update B set b=replace(b,select a from A where ID=1,'tttttt') where (select select a from A where ID=1) in IDs
#1
直接update
#2
update t set a=replace(a,'ttt','tttttt') from A t
update t set b=replace(b,'ttt','tttttt') from B t
#3
我的意思是用一句SQL语句,
就是在修改A表的时候,同时把B表中的也修改了
就是在修改A表的时候,同时把B表中的也修改了
#4
而且请你仔细看看,我B表中字段的值是什么,我只想修改它其中一段,不是整个字段的值
#5
很不幸的說:一句sql還不能修改兩個表
要么你用兩句,要么你用觸發器;
update t set b=replace(b,'ttt','tttttt') from B t
和
update t set b= 'tttttt' from B t
這兩種寫法有什么不同你運行一下就知道
#6
update A set a='tttttt' union all update B set b=replace(b,select a from A where ID=1,'tttttt') where (select select a from A where ID=1) in IDs