想批量删除word字段这一列中文前面的顿号,怎么删除呢?如下:(只是其中的一条数据)
解决思路如下:
1、先找到指定替换的函数,TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
2、怎么使用该函数?百度一下(因为不是能记住所有的mysql函数,查一下,会灵活调用就可以了)
解析:返回字符串 str , 其中所有remstr前缀和/或后缀都已被删除。若分类的BOTH、LEADIN或TRAILING中没有一个是给定的,则假设为BOTH。remstr为可选项,在未指定情况下,可删除空格。
BOTH:是删除【指定字符】左边跟右边的目标值
LEADIN:是删除【指定字符】左边的目标值
TRAILING:是删除【指定字符】右边的目标值
实例如下:(参照这个实例更容易理解)
理解TRIM能干啥之后,引入到自己的问题中:
实际需求:
要删除每一行数据中的指定字符,共400条数据,如:
目标:批量去掉【酒水】前面的顿号
调用TRIM函数解决:
update 表 set word = TRIM(LEADIN '、' from word) where id in ('id1','id2','id3','id4','id5'...) #注:id为唯一标识
误区:千万不要把from后面跟表名,from在TRIM中就是一个固定的结构,后面需要跟目标值或者是目标字段(想把哪个字段的值进行更改)
感悟:挺好用的一个函数,在mysql中。
扩展用法(转的):