您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

MySQL的replace()函数介绍_MySQL

2025/6/1 15:16:17发布9次查看
bitscn.com
mysql的replace()函数介绍
今天在工作的过程中碰到一个问题,要把数据库中某个列的所有值中含有shop.xxxx.net的字符更换成www.nowamagic.net,本来可以写个脚本,把所有的值都取出再用php进行处理,但是那样就效率非常低了,想到看试下能不能直接在mysql中用sql语句直接来处理,经过一番搜索,终于找到解决方案,其实最重要的是mysql的replace函数,关于这个函数的介绍,我在mysql手册中是没看懂,不过能实现我想要的功能就行。    
下面就是对这个函数的简要介绍以及范例。
比如你要将 表 tb1里面的 f1字段的abc替换为def:
1
update tb1 set f1=replace(f1, 'abc', 'def');
2
replace(str,from_str,to_str)
在字符串 str 中所有出现的字符串 from_str 均被 to_str替换,然后返回这个字符串:
1
mysql>   select   replace('www.mysql.com',   'w',   'ww');
2
->   'wwwwww.mysql.com'
这个函数是多字节安全的。
示例:
1
update  `dede_addonarticle`  set body =  replace ( body,'', );
2
update  `dede_addonarticle`  set body =  replace ( body,'', );
3
update  `dede_addonarticle`  set body =  replace ( body,'
', );4
update  `dede_archives`  set title=  replace ( title,'简明现代魔法 – ', );
5
update  `dede_addonarticle`  set body =  replace ( body,'../../../../../../','http://special.dayoo.com/meal/' );
mysql replace
用法1.replace intoreplace into table (id,name) values('1','aa'),('2','bb')
此语句的作用是向表table中插入两条记录。
2.replace(object, search,replace)
把object中出现search的全部替换为replaceselect replace('www.163.com','w','ww')—>www www.163.com
例:把表table中的name字段中的 aa替换为bbupdate table set name=replace(name,'aa','bb')
sql server 中 text或ntext 字段内容替换
刚开始,update aa 表 set xx字段=replace(xx字段,要替换的,特定串) ,出现错误:函数 replace 的参数 1 的数据类型 ntext 无效。update article set heading=replace(convert(nvarchar(4000),heading),'','')
1
update 表名
2
    set text类型字段名=replace(convert(varchar(8000),text类型字段名),'要替换的字符','替换成的值')
varchar和nvarchar类型是支持replace,所以如果你的text/ntext不超过8000/4000可以先转换成前面两种类型再使用replace。
1
update 表名
2
    set text类型字段名=replace(convert(varchar(8000),text类型字段名),'要替换的字符','替换成的值')
1
update 表名
2
    set ntext类型字段名=replace(convert(nvarchar(4000),ntext类型字段名),'要替换的字符','替换成的值')
如果text/ntext超过8000/4000,看如下例子:
01
declare @pos int
02
    declare @len int
03
    declare @str nvarchar(4000)
04
    declare @des nvarchar(4000)
05
    declare @count int
06
   set @des =''--要替换成的值
07
08
   set @len=len(@des)
09
   set @str= ''--要替换的字符
10
11
12
   set @count=0--统计次数.
13
14
15
    while 1=1
16
   begin
17
       select @pos=patindex('%'+@des+'%',propxmldata) - 1
18
       from 表名
19
       where 条件
20
21
      if @pos>=0
22
      begin
23
           declare @ptrval binary(16)
24
          select @ptrval = textptr(字段名)
25
          from 表名
26
          where 条件
27
           updatetext 表名.字段名 @ptrval @pos @len @str
28
          set @count=@count+1
29
       end
30
      else
31
         break;
32
   end
33
34
   select @count
bitscn.com
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product