怎么用sql语句实现部分内容替换
发布网友
发布时间:2022-04-21 00:44
我来回答
共4个回答
热心网友
时间:2022-04-07 19:21
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个字符删掉换为广州,这显然不是我们想要的结果。
热心网友
时间:2022-04-07 20:39
用字符串定位的语法。
类似于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的环境。
热心网友
时间:2022-04-07 22:14
UPDATE article
SET body = '广州'
where body = '上海'
热心网友
时间:2022-04-08 00:05
建议买一本书来看看吧