我想把“ABC是ABC”替换成“123是ABC”,也就是找出第一个ABC替换成123,MYSQL命令应该怎么写?
UPDATE data SET body=REPLACE(body, 'ABC', '123');我用这个命令时会把所有ABC都替换成123,不知道怎么控制替换次数,请高人指教。
hemu780924大哥的代码虽然能用,但是有个致命的缺陷,
比如"123是ABC",如果想找出XYZ并替换成OPQ,因为在"123是ABC"找不到XYZ,然后命令就会在"123是ABC"前面插入XYZ,这个不是我想要的啊!
Mysql怎样控制replace替换的次数?
答案:3 悬赏:70 手机版
解决时间 2021-03-13 01:50
- 提问者网友:沉默菋噵
- 2021-03-12 03:53
最佳答案
- 五星知识达人网友:玩家
- 2021-03-12 05:27
update table1 set body =
concat(
SUBSTRINg(body ,1,position('ABC' in body )-1),
'123',
substring(body ,position('ABC' in body )+length('ABC'))) where body like '%ABC%'
这里替换第一次的ABC ,没有ABC就不替换了
concat(
SUBSTRINg(body ,1,position('ABC' in body )-1),
'123',
substring(body ,position('ABC' in body )+length('ABC'))) where body like '%ABC%'
这里替换第一次的ABC ,没有ABC就不替换了
全部回答
- 1楼网友:轻雾山林
- 2021-03-12 06:30
update 表的名称 set 替换字段=replace
(
替换字段,
mid(替换字段,10,instr(替换字段," ",,12)-1),
'新内容')
中间的函数取出要修改的域名部分。
解释下
10是域名开始的一个字母
截止位数是查找第二个空格的位数减1
之间的就是要替换的内容。
- 2楼网友:青灯有味
- 2021-03-12 05:45
可以加一个条件达到类似随机的效果。
比如某个列的数字被多少整除,或者某个列包涵什么字符。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯