mysql中如何删除字段中的某个字符,,不是替换所有

an625446161 2017-06-14 12:26:29


有个user表如图如何删除devid中的那个1 而不是把所有如(12,13,14)的1也删了

还有这个devid 以图片上面的格式存储的时候有没有好的方式保证他不重复
...全文
1855 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
set @d:='1,2,3,12,13,1,14';
select replace(trim(replace(replace(concat(' ',@d,' '),',',' '),' 1 ',' ')),' ',',') as dd;

/*
dd
2,3,12,13,14
*/
二月十六 2017-06-14
  • 打赏
  • 举报
回复
引用 4 楼 shinger126 的回复:
[quote=引用 2 楼 sinat_28984567 的回复:]
update `user` set devid = replace(devid,'1,','')
这样不行的,如果字符串是 1,21,23会替换成223。应该分2句来替换,第一句替换1,开头的 update user set devid=replace(devid,'1,','') where left(devid,2)='1,' 再执行update user set devid=replace(devid,',1,',',') 保证数据不重复的话,很难,这个表的设计违背了建表的原子性原则,不过你可以用表值函数来把id字段和devid字段做成1对多的形式[/quote] 恩这样写确实存在这个问题,换成水果版主那个应该可以了
update `user` set devid = trim(both ',' from replace(concat(',', devid, ','), ',1,', ','))
shinger126 2017-06-14
  • 打赏
  • 举报
回复
引用 2 楼 sinat_28984567 的回复:
update `user` set devid = replace(devid,'1,','')
这样不行的,如果字符串是 1,21,23会替换成223。应该分2句来替换,第一句替换1,开头的 update user set devid=replace(devid,'1,','') where left(devid,2)='1,' 再执行update user set devid=replace(devid,',1,',',') 保证数据不重复的话,很难,这个表的设计违背了建表的原子性原则,不过你可以用表值函数来把id字段和devid字段做成1对多的形式
  • 打赏
  • 举报
回复
用函数 取第一个逗号前面的1,然后replace掉就可以了
二月十六 2017-06-14
  • 打赏
  • 举报
回复
update `user` set devid = replace(devid,'1,','')
卖水果的net 2017-06-14
  • 打赏
  • 举报
回复

create table test(id int, name varchar(30));

insert into test values(1,'1,2,12,13,23,55');
insert into test values(2,'22,33,56,61');
insert into test values(3,'1');
insert into test values(4,'');

update test 
set name =  trim(both ',' from replace(concat(',', name, ','), ',1,', ','));

select * from test;

drop table test;

zhouyuehai1978 2017-06-14
  • 打赏
  • 举报
回复
引用 6 楼 zhouyuehai1978 的回复:
你在devid前面加个逗号,然后,替换',1,'就可以了
写错了,devid两头都得加逗号,然后替换‘,你要替换的字符,’,再把devid最后的一个逗号去掉就可以了
zhouyuehai1978 2017-06-14
  • 打赏
  • 举报
回复
你在devid前面加个逗号,然后,替换',1,'就可以了

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧