sql语句批量修改字段
sql语句替换表中内容⼀、根据条件去掉指定记录的前2个字符
update 表名 set 字段名=REPLACE(字段名,字段名,SUBSTR(字段名,1,2)) where 条件;
简单例⼦:
update test set name=REPLACE(name,name,SUBSTR(name,1,2)) where number=1
SUBSTR函数的简单⽤法
substr(字符串,截取开始位置,截取长度)//返回截取字
substr('testWork',0,1)//返回结果为't' (从字符串第⼀个字符开始截取长度为1的字符串)
substr('testWork',1,1)//返回结果为't' (0和1都表⽰截取的开始位置为第⼀个字符)
substr('testWork',2,4)//返回结果为'est'
substr('testWork',-3,3)//返回结果为'ork'(负数(-i)表⽰截取的开始位置为字符串右端向左数第i个字符)
⼆、批量修改指定字段的数据
update 表名 set 字段=replace(字段,'原内容','新内容') where 条件
如:将表中的图⽚字段中的.html去掉
update test set image=replace(image,'.html','') where number=2;
三、批量修改指定字段数据
update 表名 set 字段名=REGEXP_REPLACE(字段名,'正则表达式','替换的字符') where 条件 ;
如:将name中以'thai'开头的改为'korean'
update test set name=REGEXP_REPLACE(name,'(^thai)','korean') ;
regexp_replace(1,2,3,4,5,6) 正则替换
语法说明:1:待匹配的字符串 2:正则表达式 3:替换的字符 4:起始位置(默认从1开始) 5:替换的次数(0表⽰⽆限次) 6:取值范围(i:⼤⼩写不敏感 c:⼤⼩写敏感(默认) n:不匹配换⾏符号 m:多⾏模式 x:扩展模式,忽略正则表达式中的空⽩符)
扩展知识:
批量修改数据
update 表名 set 字段名=stuff(字段名,1,3,'新内容');
如:将表test中name字段的前3个字符改成'test'
update test set name=stuff(name,1,3,'test');
sqlserver stuff⽤法
1、作⽤
删除指定长度的字符,并在指定的起点插⼊另⼀组字符
2、语法
STUFF ( character_expression , start , length ,character_expression )
3、⽰例
在第⼀个字符串stringtest中删除从第3个位置(字符r)开始的三个字符,然后在删除的起始位置插⼊第⼆个字符串,返回⼀个新的字符串
select stuff('stringtest',3,3,'ok')
结果 stroktest
4、参数
character_expression
⼀个字符数据表达式。character_expression可以是常量、变量,也可以是字符列或⼆进制数据列
start
⼀个整数,指定要删除和插⼊的开始位置。如果start或length为负,则返回空字符串。如果start⽐第⼀个character_expression长,则返回空字符串。start可以是bigint类型。
length
⼀个整数,指定要删除的字符串数。如果length⽐第⼀个character_expression长,则最多删除到最后
⼀个character_expression中的最后⼀个字符。length可以是bigint类型。
5、返回类型
如果character_expression是受⽀持的字符数据类型,则返回字符数据。如果character_expression是⼀个不受⽀持的binary数据类型,则返回⼆进制数据。
6、备注
如果结果值⼤于返回类型⽀持的最⼤数,则产⽣错误
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论