SQL语句replace替换问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句replace替换问题相关的知识,希望对你有一定的参考价值。

参考技术A  在使用iwms系统的过程中,我们会经常遇到数据内容的替换操作。在告诉大家如何替换数据内容之前,我建议大家先了解一下SQL
Server数据库的数据存储类型:
  SQL
Server数据类型:
  以上是数据库的基础知识,是做网站的朋友都应该知道的内容(无论你使用什么cms),所以建议大家都耐心看一下。
  数据替换一般都发生在字符串数据字段中,除了ntext类型字段以外的其他字符串数据字段都可以使用以下的sql语句进行替换:
  update
[swf_Upload]
set
[Dir]
=
replace([Dir],'200901/14','200901/15')
  update
[swf_Content]
set
[Description]
=
  replace([Description],'200901/14','200901/15')
  update
[swf_Content_01]
set
[content]
=
  replace(convert(varchar(4000),
[content]),'200901/14','200901/15')
  UPDATE
[数据表名]
SET
[字段名]
=
REPLACE([字段名],'老字符串','新字符串')
  比如,替换iwms文章数据表(iwms_news)中的标题字段(title)的部分内容,我们应该这么写:
  UPDATE
[iwms_news]
SET
[title]
=
REPLACE([title],'老字符串','新字符串')
  上面的sql语句在iwms后台的sql执行里面可以直接执行,基本上可以搞定所有的替换操作,但是由于ntext数据长度的原因,这一方法对ntext类型字段无效。那我们该用什么方法替换ntext类型字段的内容呢?方法有两种:
  一是类型转换,将ntext类型转换为varchar类型,然后再用replace。适合于单页内容最大长度<4000的文章。
  update
[数据表名]
set
[字段名]
=
replace(convert(varchar(4000),
[字段名]),'老字符串','新字符串')
  比如,替换iwms文章数据表(iwms_news)中的标题字段(content,ntext类型字段)的部分内容,我们应该这么写:
  update
iwms_news
set
[content]
=
replace(convert(varchar(4000),[content]),'老字符串','新字符串')
  二是SQL
Server存储过程
  declare
@ptr
varbinary(16)
  declare
@artId
int
  declare
@Position
int,@len
int
  set
@len
=
datalength('老字符串')
  declare
wux_Cursor
scroll
Cursor
  for
  select
textptr([字段名]),[key字段名]
from
[数据表名]
  for
read
only
  open
wux_Cursor
  fetch
next
from
wux_Cursor
into
@ptr,@artId
  while
@@fetch_status=0
  begin
  select
@Position=patindex('%老字符串%',[字段名])
from
[数据表名]
where
[key字段名]=@artId
  while
@Position>0
  begin
  set
@Position=@Position-1

利用SQL语句替换织梦DedeCms数据库内容

替换文章标题

UPDATE `dede_archives` SET `title`=replace(title,‘我我我‘,‘你你你‘)

 

替换文章正文

UPDATE `dede_addonarticle` SET `body`=replace(body,‘我我我‘,‘你你你‘)

 

替换文章描述

UPDATE `dede_archives` SET `description`=replace(description,‘我我我‘,‘你你你‘)

 

把我我我替换为你你你

以上是关于SQL语句replace替换问题的主要内容,如果未能解决你的问题,请参考以下文章

SQL REPLACE 语句替换部分数字不是全部

求sql部分字符替换语句

replace MYSQL字符替换函数sql语句分享(正则判断)

oracle sql语句中的替换问题

sql中replace语句如何做模糊匹配并删除

oracle中替换字段中指定字符串的语句