我的数据库中有一张表,大约有3000条记录。此表中的一列包含包含URL的数据。我希望将这些URL转换为超链接,以便在将内容呈现到网页上时,它是链接到URL的锚元素。
例如,内容可能如下:
Lorem ipsum http://domain.com dolor sit amet, consectetur adipiscing elit. Cras consequat nisl vitae leo pellentesque tempus et id nunc. Vestibulum varius facilisis fringilla
我想将其更改为:
Lorem ipsum <a href='http://domain.com' target='_blank'>http://domain.com</a> dolor sit amet, consectetur adipiscing elit. Cras consequat nisl vitae leo pellentesque tempus et id nunc. Vestibulum varius facilisis fringilla
我已经尝试过:
UPDATE TableA
SET Content=REPLACE(Content, "http://domain.com", "<a href='http://domain.com' target='_blank'>http://domain.com</a>")
但这仅适用于那个确切的网址,而我需要它适用于以http://
开头的任何网址
这在SQL Server中是否可行?
答案 0 :(得分:2)
您可以使用您选择的编程语言,SELECT所有条目,使用正则表达式操作它们,替换每行中的URL并更新每一行。
如果要直接使用SQL Server,可以尝试在数据库服务器上实现CLR功能。以下链接说明了如何执行此操作: http://weblogs.sqlteam.com/jeffs/archive/2007/04/27/SQL-2005-Regular-Expression-Replace.aspx
然后您使用模式匹配网址,例如
^http://([a-zA-Z0-9_\-]+)([\.][a-zA-Z0-9_\-]+)+([/][a-zA-Z0-9\~\(\)_\-]*)+([\.][a-zA-Z0-9\(\)_\-]+)*$
(正则表达式有效,但可能不完整)
答案 1 :(得分:0)
是的,这是可能的。您将需要解析您的字符串并拆分您需要的部分。看看t-sql字符函数。主要是“charindex”和“substring”