程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL的replace()函數介紹

MySQL的replace()函數介紹

編輯:MySQL綜合教程


MySQL的replace()函數介紹   今天在工作的過程中碰到一個問題,要把數據庫中某個列的所有值中含有"shop.xxxx.net"的字符更換成"www.nowamagic.net",本來可以寫個腳本,把所有的值都取出再用php進行處理,但是那樣就效率非常低了,想到看試下能不能直接在MySQL中用SQL語句直接來處理,經過一番搜索,終於找到解決方案,其實最重要的是mysql的replace函數,關於這個函數的介紹,我在MySQL手冊中是沒看懂,不過能實現我想要的功能就行。  www.2cto.com   下面就是對這個函數的簡要介紹以及范例。 比如你要將 表 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,'</td>'," ); 2 UPDATE  `dede_addonarticle`  SET body =  REPLACE ( body,'</tr>'," ); 3 UPDATE  `dede_addonarticle`  SET body =  REPLACE ( body,'<tr>'," ); 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),'<script></script>','') 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 ='<requested_amount+1>'--要替換成的值 07   08    set @len=len(@des) 09    set @str= '<requested_amount>'--要替換的字符 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  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved