我正在编写一个查询来查找/替换具有明确开头和结尾的模式,其间包含通配符。这是原始网址:
"></title><script src="http://www.weblearn.edu"></script><!--
这是结果:
cript src="http://www.weblearn.edu"></script><!--
- 这是期望的结果: (没有字符或空格)
- 我怎样才能更换整件东西?谢谢你的帮助。
SELECT
CASE
WHEN PATINDEX('">%http%<!--', AcademicDishonestyDesc) > 0 THEN
STUFF(AcademicDishonestyDesc, PATINDEX('">%http%<!--', AcademicDishonestyDesc), LEN('">%http%<!--'), '')
END
FROM AMS_CoursePolicyAcademicDishonesty
WHERE PATINDEX('">%http%<!--', AcademicDishonestyDesc) > 0
GO
答案 0 :(得分:0)
似乎最安全,最简单的事情 - 因为您已经识别了URL - 只是从任何HTML标记中删除src属性:
UPDATE dbo.table SET column = REPLACE(column, ' src="http://...bad script..."', '');
一个简单的例子:
DECLARE @n TABLE (x VARCHAR(255));
INSERT @n(x) VALUES
('...><script src="http://www.weblearn.edu"></script><!--'),
('......><script src="http://www.weblearn.edu"></script><!--'),
('..><script src="http://www.weblearn.edu"></script><!--'),
('....><script src="somethingelse"></script><!--');
UPDATE @n SET x = REPLACE(x, ' src="http://www.weblearn.edu"', '')
WHERE x LIKE '% src="http://www.weblearn.edu"%';
SELECT x FROM @n;
结果(HTML中的空脚本标签绝对正常):
...><script></script><!--
......><script></script><!--
..><script></script><!--
....><script src="somethingelse"></script><!--
对每个错误的脚本URL重复此操作。如果这不是您所追求的,请与需求一起更新您的问题(例如,向我们展示所需的结果)。