怎么用sql语句实现部分内容替换
网站后台用的是mysql数据库,表article里有个字段body,字段属性是htmltext现在我想把body字段每条记录里包含的第一个“上海”替换为“广州”(由于一条...
网站后台用的是mysql数据库,表article里有个字段body,字段属性是htmltext
现在我想把body字段每条记录里包含的第一个“上海”替换为“广州”(由于一条记录里可能含有很多个"上海",这里只需要替换第一个)
请问用sql怎么去实现 展开
现在我想把body字段每条记录里包含的第一个“上海”替换为“广州”(由于一条记录里可能含有很多个"上海",这里只需要替换第一个)
请问用sql怎么去实现 展开
4个回答
展开全部
update article set body=INSERT(body, INSTR(body,'上海'), 4, '广州') where INSTR(body,'上海')<>0;
INSTR(body,'上海')---找到body里出现的第一个上海的位置;
INSERT(body, INSTR(body,'上海'), 4, '广州') 将body从第一个上海的位置开始的4个字符(上海两个字占4个字符)替换为广州。
每件是INSTR(body,'上海')不等0,因为body中没有上海的话,INSTR(body,'上海')会返回0,INSERT(body, INSTR(body,'上海'), 4, '广州')就会将body左边开始的4个字符删掉换为广州,这显然不是我们想要的结果。
INSTR(body,'上海')---找到body里出现的第一个上海的位置;
INSERT(body, INSTR(body,'上海'), 4, '广州') 将body从第一个上海的位置开始的4个字符(上海两个字占4个字符)替换为广州。
每件是INSTR(body,'上海')不等0,因为body中没有上海的话,INSTR(body,'上海')会返回0,INSERT(body, INSTR(body,'上海'), 4, '广州')就会将body左边开始的4个字符删掉换为广州,这显然不是我们想要的结果。
更多追问追答
追问
刚试了一下,可以运行,检查了一下,好像就是我想要的结果啊,为什么你会说这不是我们想要的结果呢
我需要的就是body左边开始出现的第一个上海替换为广州
追答
我意思是必须加上条件:where INSTR(body,'上海')0,因为body中没有上海的话,INSTR(body,'上海')会返回0,INSERT(body, INSTR(body,'上海'), 4, '广州')就会将body左边开始的4个字符删掉换为广州。
就是如果body中没有'上海'的话,会出现我们不想要的结果。
你还不好分辨到底是没有上海或是上海本来就在最左边,都会将body左边开始的4个字符删掉换为广州。
展开全部
用字符串定位的语法。
类似于SQLSERVER中CHARINDEX这样的语法,MYSQL中肯定也有吧,应该是locate。这个返回的就是第一个符合条件的字符串所在的位置
如果是SQLSERVER的语法可以这么写
UPDATE TABLE SET COLUMN = CONCAT(SUBSTRING(COLUMN, 1, locate('上海',COLUMN) - 1), '广州', SUBSTRING(COLUMN, locate('上海',COLUMN) + 2, len(COLUMN) - locate('上海',COLUMN) - 1) ) where locate('上海',COLUMN) > 0
没测试,但是大约是这个意思,我这里没有MYSQL的环境。
类似于SQLSERVER中CHARINDEX这样的语法,MYSQL中肯定也有吧,应该是locate。这个返回的就是第一个符合条件的字符串所在的位置
如果是SQLSERVER的语法可以这么写
UPDATE TABLE SET COLUMN = CONCAT(SUBSTRING(COLUMN, 1, locate('上海',COLUMN) - 1), '广州', SUBSTRING(COLUMN, locate('上海',COLUMN) + 2, len(COLUMN) - locate('上海',COLUMN) - 1) ) where locate('上海',COLUMN) > 0
没测试,但是大约是这个意思,我这里没有MYSQL的环境。
更多追问追答
追问
刚试了一下,运行不了呢
追答
您好,提示了什么错误?
MYSQL的语法我这里没有环境,所以是试着写的,你看看是不是这个语句的语法有什么错误?
思路就是这个思路,您应该可以理解吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
UPDATE article
SET body = '广州'
where body = '上海'
SET body = '广州'
where body = '上海'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询