文法格式:
UPDATE 表名
SET 欄位名 = REPLACE (
替換前的欄位值,
'替換前關鍵字',
'替換後關鍵字'
)
WHERE
欄位名 REGEXP "替換前的欄位值";
樣本Demo:
(1)替換b-blog表主鍵id為9的content欄位內容www.111cn.ne為m.111cn.net:
代碼如下 |
複製代碼 |
UPDATE b_blog SET content = REPLACE ( content, 'www.111cn.net', 'm.111cn.net' ) WHERE id = 9 |
(2)替換下面內容為空白:
[b][url] [img] www.111cn.ne [/img] [size=6][color=Red]未來往事~ 未來往事部落格~、[/color][/size] [/url][/b]
[b][url] [img] www.111cn.net [/img] [size=6][color=Red]Xsimple:致力於提供互連網解決方案[/color][/size] [/url][/b]
SQL語句:
代碼如下 |
複製代碼 |
UPDATE b_blog SET message = REPLACE ( message, substring( message, locate('[b][url] [img]', message), locate('[/url][/b]', message) + 10 - locate('[b][url] [img]', message) ), '' ) WHERE id >= 10000 |
#補充注釋:
①SUBSTRING ( expression , pos, length ) 字元截取函數
參數
expression:是字串、二進位字串、text、image、列或包含列的運算式。不要使用包含彙總函式的運算式。
pos:是一個整數,指定子串的開始位置。
length:是一個整數,指定子串的長度(要返回的字元數或位元組數)。
select msg = substring('blog.fity.cn', 6, 4) ....; //輸出:msg -- fity
②LOCATE(substr,str,pos)字串尋找函數,返回字串所在的下標,支援中文,不區分大小寫
第一個文法返回substr在字串str 的第一個出現的位置。第二個文法返回子符串 substr 在字串str,從pos處開始的第一次出現的位置。如果substr 不在str 中,則傳回值為0 。
select locate('fity', 'blog.fity.cn'); //輸出6
③上述SQL中數字10為[/url][/b]字串的個數和