如何在MsSQL中执行简单的"查找和替换"?
时间:2020-03-05 18:52:13 来源:igfitidea点击:
问题是很自我解释。我想做一个简单的查找和替换,就像在文本编辑器中处理数据库列中的数据一样(在MS Windows Server 2003上为MsSQL)
解决方案
回答
以下查询将每个" a"字符替换为" b"字符。
UPDATE YourTable SET Column1 = REPLACE(Column1,'a','b') WHERE Column1 LIKE '%a%'
这在SQL Server 2003上不起作用。
回答
像这样:
BEGIN TRANSACTION; UPDATE table_name SET column_name=REPLACE(column_name,'text_to_find','replace_with_this'); COMMIT TRANSACTION;
示例:将<script ...替换为<a ...以消除JavaScript漏洞
BEGIN TRANSACTION; UPDATE testdb SET title=REPLACE(title,'script','a'); COMMIT TRANSACTION;
回答
如果我们使用的是SQL Server 2005或者更高版本,则http://www.sqlsharp.com/上还有一个CLR库,该库提供.NET实现的字符串和RegEx函数,具体取决于数据量和数据类型。更易于使用,在某些情况下,.NET字符串操作功能可能比T-SQL更高效。