‘壹’ Mysql 批量替换某一列内的部分数据
MySQL有一个replace函数,作用是将某一列的部分数据替换为其他数据。
使用方法:
这样即可实现将列column内所以的123替换为456
‘贰’ 如何替换数据库表中的某些数据
update
aaa
set
bbb=
select
substr(bbb,1,9)||'1'||substr(bbb,11,6)
where
bbb
like
'%一%'
;
如果你洞橘裤的bbb字段里还有很多纳简带“一伍档”的话,修改where的条件。
‘叁’ MySQL数据库,如何批量替换整个数据库的个别字符
用phpmyadmin把数据库导出为.sql脚本,空间商一般有提供这个管理工具给用户使用的,如果没提供,你也可以自行上传一个到空间里。用它导出为.sql脚本后,用记事本打开,然后用一次性查找替换,替换之后保存,然后再在phpmyadmin里把原来的表及数据全部删除,删除后重新导入修改好的.sql脚本。 操作以上东西时请先备份你的数据库喔,以免有意想不到的问题发生。
‘肆’ 怎么替换数据库中所有表中的数据
1.理论上没可能一次性实现;
2.实际上很多朋友都会碰到这种需求,怎么解决呢?
1)把所有表的结构和数据导出为文本的.sql文件,用文本编辑软件word或者dw等都可以,用替换方法把字符a替换为b,但这有可能误操作,所以要慎重查看;
2)替换完以后,再利用mysql数据管理软件,把sql文件导入到新的数据库中,进行严格测试,通过后;把旧版数据备份(主要为了安腔哗猛全着想),然后导入新的数据即伍桥可完成所需操芦逗作;
‘伍’ 数据库字符串中某个字符的替换
你那个语句是可以的,replace函数不是替换整个字符串的,恰恰就是替换部分字符的,该函数我前段时间还用过呢,你可以执行以下试试。
‘陆’ 如何替换数据库中某个字段中的数据
不同的数据库,替换字段值的命令格式是不同的,现以MYSLQ 为例说明:
在数据库中修改一些内容,就需要用到下列语句:
sql语句为:UPDATE `table_name` SET `field_name` = replace (`field_name`,’from_str’,'to_str’) WHERE ……
代码说明: table_name —— 表的名字 field_name —— 字段名 from_str —— 需要替换的字符串 to_str —— 替换成的字符串 目的是为了直接用sql操作数据库修改字段中的某些字串,也可以使用下列方法有条件的替换,比较麻烦,需要三步,先SELECT出来符合的记录,然后进行字符串替换,再UPDATE。
假如我要替换的内容是:把’家 乐 福’字符替换成’Jia Le Fu’ 要替换的内容在:数据表 cdb_posts中的message 字段。那我们就应该这样写:
update dede_addonarticle set body=replace(body, ‘家乐福’, ‘Jia Le Fu’);
如果是在自编的程序中替换,用循环加赋值语句就行,当然,也可以直接使用用SQL命令来实现,就看你个人喜好了。
‘柒’ MSSQL Server数据库内容替换方法
在使用iwms系统的过程中,我们会经常遇到数据内容的替换操作。在告诉大家如何替换数据内容之前,我建议大家先了解一下SQL Server数据库的数据存储类型:
SQL Server数据类型:
数据替换一般都发生在尘春字符串数据字段中,除了ntext类型字段以外的其他字符串数据字段弯巧都可以使用以下的sql语句进行替换:
update [swf_Upload] set [Dir] = replace([Dir],/14',/15')update [swf_Content] set [Description] =replace([Description],/14',/15')update [swf_Content_01] set [content] = replace(convert(varchar(4000), [content]),/14',/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 @Position0
begin
set @Position=@Position-1
updatetext [数据表名].[字段名] @ptr @Position @len '新字符串'
select @Position=patindex('%老字符串%',[字段名]) from [数据表名] where [key字段名]=@artId
end
fetch next from wux_Cursor into @ptr,@artId
end
close wux_cursor
deallocate wux_cursor
go
比如,替换iwms文章数据表(iwms_news)中的标题字段(content,ntext类型字段)的部分内容,我们应该这么写
declare @ptr varbinary(16)
declare @artId int
declare @Position int,@len int
set @len = datalength('老字符串')
declare wux_Cursor scroll Cursor
for
select textptr([content]),[articleid] from iwms_news
for read only
open wux_Cursor
fetch next from wux_Cursor into @ptr,@artId
while @@fetch_status=0
begin
select @Position=patindex('%老字符串%',[content]) from iwms_news where [articleid]=@artId
while @Position0
begin
set @Position=@Position-1
updatetext iwms_news.[content] @ptr @Position @len '新字符串'
select @Position=patindex('%老字符串%',[content]) from iwms_news where [articleid]=@artId
end
fetch next from wux_Cursor into @ptr,@artId
end
close wux_cursor
deallocate wux_cursor
go
ok了,需要注意的是:存储过程只能在SQL Server查询分析器中执行。
另外,由于iwms数据库结构的问题,有分页的文章内容需要先后对iwms_news和iwms_pages两个表内容进行替换操作。