SQL中如何同时替换多个指定字符串

SQL中如何同时替换多个指定字符串,第1张

1、方法一:varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 。

update 表名 set 字段名=replace(cast(与前面一样的字段名 as varchar(8000)) ,'原本内容','想要替换成什么')

2、方法二:

update [表名] set 字段名 = replace(与前面一样的字段名,'原本内容','想要替换成什么')

3、方法三:此方法既可用于删除某一列字段中的某部分字符,也可用于替换某一列字段中的某部分字符。

update Table_Name

set Column_Name=replace(Column_Name,substring(Column_Name,Start,Length),'Replace_Content')

--Start 是要替换的字符开始的位置

--Lenght 要替换字符的长度

4、方法四:这段语句就可以用来代替某个特定的字符,用Replace_Content代替Content。

update Table_Name

set Column_Name=replace(Column_Name,'Content','Replace_Content')

扩展资料:

与stuff函数的不同

1、作用

stuff函数用于删除指定长度的字符,并在指定的起点处插入另一组字符。

2、语法

STUFF ( character_expression , start , length ,character_expression )

3、示例

以下示例在第一个字符串 abcdef 中删除从第 2 个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串。

SELECT STUFF('abcdef', 2, 3, 'ijklmn') GO

下面是结果集

aijklmnef

4、参数 character_expression

一个字符数据表达式。character_expression 可以是常量、变量,也可以是字符列或二进制数据列。

5、返回类型 如果 character_expression 是受支持的字符数据类型,则返回字符数据。如果 character_expression 是一个受支持的 binary 数据类型,则返回二进制数据。

6、备注 如果结果值大于返回类型支持的最大值,则产生错误。

 在使用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


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/56685.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-26
下一篇2023-02-26

发表评论

登录后才能评论

评论列表(0条)

    保存