sql怎么把一个表中字段的部分内容替换成另一个表字段的内容

如题所述

mysql可以用以下方法

-- tableb 通过 aid 关联tablea 的id,把tableb的fielda字段写入tablea的fielda字段
UPDATE tablea SET fielda = (select fielda from tableb where tablea.id=tableb.aid)

-- 关联方式一样,把tablea中fielda的字段中的特定字符串替换成tableb中指定字段的值
update tablea set fielda = REPLACE(fielda,'[价格]',
(select price from tableb where tablea.id=tableb.aid)
)

sql server就不能一条语句更新了,要做存储过程来处理

追问

大神 这个有点高深看不懂 我简单点叙述下 我想把A表的a字段的前18位替换成B表b字段的内容,条件是 A表的ID =B表的ID

追答UPDATE A SET a = concat((
select substr(b,1,18)
 from B where A.id=B.id
 ),substr(a,19))

concat 为连接字符串函数 

substr为字符串截取函数,位置从1起算

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-19
这个是进行修改与查询操作,你得先把另一个表字段的内容给查找出来,然后在对要修改的表进行操作,语句就不说了,简单,很简单追问

那您帮我写下呗 难着不会,会者不难啊

第2个回答  2019-01-19
update test_tb set field=
(select replace(field,'part',(select field2 from test_tb))
from test_tb)
相似回答