語法格式:
UPDATE 表名
SET 字段名 = REPLACE (
替換前的字段值,
'替換前關鍵字',
'替換後關鍵字'
)
WHERE
字段名 REGEXP "替換前的字段值";
示例Demo:
(1)替換b-blog表主鍵id為9的content字段內容www.111cn.ne為m.111cn.net:
(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]字符串的個數和