日期:2014-05-18  浏览次数:20457 次

sql 字符串批量替换
 
  因为换服务器了,原来图片的地址是以绝对路径存的 即以 http://102.122.103.1/images/1.jpg 的形式存入数据库 database中,很多表的很多字段都存了这样的地址,现在换服务器了。要把这个数据库中的所有 102.122.103.1 字符 换成 102.256.142.254,如何操作,用什么语句是最快的

 

------解决方案--------------------
可以做一个C#程序,查询,然后更新
------解决方案--------------------
不管是做个程序执行,
还是在sql查询器里执行。
要备份好原来的数据。
只要达到效果就行了
------解决方案--------------------
REPLACE 将第一个字符串表达式中第二个给定字符串表达式的所有实例都替换为第三个表达式。

REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )
 
SELECT REPLACE(ProductName, 'Anton', 'Anthony')FROM Products

------解决方案--------------------
那就把要转换东西放到一个数组里面 然后循环替换。
------解决方案--------------------
你可以这样处理:
1、先新建一个一样的表
2、使用insert into语句:
INSERT INTO newTable
(a
,b
,c
)
select a,b,replace(c,'102.122.103.1','102.256.142.254') from oldTable
3、检查表是否已经修改好了,如果成功了,则把表重命名即可