sql怎么把一个表中字段的部分内容替换成另一个表字段的内容
发布网友
发布时间:2022-04-07 17:52
我来回答
共4个回答
懂视网
时间:2022-04-07 22:13
代码如下:
UPDATE `cdb_pms`
SET `subject` =
REPLACE(`subject`, ‘Welcome to‘, ‘欢迎光临‘)
WHERE INSTR(`subject`,‘Welcome to‘)
> 0
替换cdb_posts表的message字段,将“viewthread.php?tid=3989”替换成“viewthread.php?tid=16546”
复制代码
代码如下:
UPDATE `cdb_posts`
SET `message`=
REPLACE(`message`, ‘viewthread.php?tid=3989‘, ‘viewthread.php?tid=16546‘)
WHERE INSTR(`message`,‘viewthread.php?tid=3989‘) > 0 ;
删除所有的空格
复制代码
代码如下:
UPDATE `es_product` SET `pro_pub_time` =
TRIM(`pro_pub_time`)
删除所有饱含‘[‘或者‘]‘或者‘.‘的字符
复制代码
代码如下:
UPDATE `es_product` SET `pro_pub_time` =
REPLACE(`pro_pub_time`, ‘[‘,‘‘) WHERE INSTR(`pro_pub_time`,‘[‘) > 0
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, ‘]‘,‘‘)
WHERE INSTR(`pro_pub_time`,‘]‘) > 0
UPDATE `es_product` SET
`pro_pub_time` = REPLACE(`pro_pub_time`, ‘.‘,‘-‘) WHERE
INSTR(`pro_pub_time`,‘.‘) > 0
替换所有含中文‘-‘的为英文‘-‘
复制代码
代码如下:
UPDATE `es_product` SET `pro_pub_time` =
REPLACE(`pro_pub_time`, ‘-‘,‘-‘) WHERE INSTR(`pro_pub_time`,‘-‘) > 0
将所有的年月都替换成‘-‘
复制代码
代码如下:
UPDATE `es_product` SET `pro_pub_time` =
REPLACE(`pro_pub_time`, ‘年‘,‘-‘) WHERE INSTR(`pro_pub_time`,‘年‘) > 0
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, ‘月‘,‘-‘)
WHERE INSTR(`pro_pub_time`,‘月‘) > 0
将所有‘2005-04-‘这种类型的替换成‘2005-04-01‘
复制代码
代码如下:
UPDATE `es_product` SET `pro_pub_time` =
CONCAT( `pro_pub_time`, ‘01‘) WHERE SUBSTRING_INDEX( `pro_pub_time`, ‘-‘, -1) =
‘‘ AND LENGTH(`pro_pub_time`) > 0 AND LENGTH(`pro_pub_time`) > 5
将所有‘2005-‘这种类型替换成‘2005-01-01‘
复制代码
代码如下:
UPDATE `es_product` SET `pro_pub_time` =
CONCAT( `pro_pub_time`, ‘01-01‘) WHERE INSTR(`pro_pub_time`,‘-‘) > 0 AND
LENGTH(`pro_pub_time`) = 5
将所有 饱含‘-‘,但是位数小于8的改成追加‘-01‘
复制代码
代码如下:
UPDATE `es_product` SET `pro_pub_time` =
CONCAT( `pro_pub_time`, ‘-01‘) WHERE INSTR(`pro_pub_time`,‘-‘) > 0 AND
LENGTH(`pro_pub_time`) < 8
将所有‘2005‘这样的改成‘2005-01-01‘
复制代码
代码如下:
UPDATE `es_product` SET `pro_pub_time` =
CONCAT(`pro_pub_time`,‘-01-01‘) WHERE INSTR(`pro_pub_time`,‘-‘) = 0 AND
LENGTH(`pro_pub_time`) = 4
最后将所有‘2005-01-01‘格式化成‘2005年01月‘
复制代码
代码如下:
UPDATE `es_product` SET `pro_pub_time` =
DATE_FORMAT(`pro_pub_time`,‘%Y年%m月‘) WHERE INSTR(`pro_pub_time`,‘-‘) > 0
mysql部分替换sql语句分享
标签:
热心网友
时间:2022-04-07 19:21
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起算
热心网友
时间:2022-04-07 20:39
这个是进行修改与查询操作,你得先把另一个表字段的内容给查找出来,然后在对要修改的表进行操作,语句就不说了,简单,很简单追问那您帮我写下呗 难着不会,会者不难啊
热心网友
时间:2022-04-07 22:14
update test_tb set field=
(select replace(field,'part',(select field2 from test_tb))
from test_tb)