代码之家  ›  专栏  ›  技术社区  ›  oshirowanen

替换文本字段中的字符串

  •  1
  • oshirowanen  · 技术社区  · 15 年前

    我是否可以使用replace函数更改数据库表中文本字段中的所有url,而不影响同一列中的其余文本?

    谢谢

    2 回复  |  直到 15 年前
        1
  •  3
  •   cichy    15 年前

    UPDATE table SET text = REPLACE(text, 'from', 'to')
    

    使精确从:像 http://url_from.com/ http://url_to.com/

        2
  •  0
  •   Community Mohan Dere    7 年前

    https://web.archive.org/web/20150521050102/http://sqlserver2000.databases.aspfaq.com:80/how-do-i-handle-replace-within-an-ntext-column-in-sql-server.html

    我需要在文本字段中为CHAR(146)`编写一个find and replace。fort nText的上述文章和使用nText的相同文本解决方案进行了以下更改:

    声明 @文本指针二进制(16), @oldString VARCHAR(32), @当前数据ID INT;

    设置@oldString=''; 设置@newString='';

    开始 结束 其他

    --设置@lenOldString=DATALENGTH(@oldString)/2

    --用于文本字段

    本地转发仅静态只读 选择 数据ID 从 dbo.tbData文件 比例指数('%'+@旧字符串+“%”,文本数据)>0;

    从irows获取NEXT到@currentDataID; 开始

    选择 @TextPointer=TEXTPTR(TextData), @TextIndex=PATINDEX('%'+@oldString+“%”,文本数据) dbo.tbData文件 哪里 DataID=@currentDataID;

    选择 比例指数('%'+@旧字符串+“%”,文本数据) 从 哪里 )大于0 开始

    选择 @TextIndex=PATINDEX('%'+@旧字符串+“%”,文本数据)-1 dbo.tbData文件 哪里

    更新文本dbo.tbData.TextData @TextPointer@textdindex@lenOldString@newString; 结束 从irows获取NEXT到@currentDataID;

    关闭irows; 解除分配irows;