sql替换两个字符串之间的所有字符

发布于 2024-12-26 10:06:40 字数 1132 浏览 1 评论 0原文

我正在尝试找出一种方法来仅更新/替换两个字符串之间的文本。

例如,我需要能够更新该字段并仅替换以下脚本标记之间的内容,而使打开脚本标记之前的文本保持不变。

I want to keep this string<script type="text/javascript" language="javascript">********</script>

我认为 REPLACE 不起作用,因为脚本标记之间的文本会有所不同。是否有某种类型的通配符?

UPDATE Products_Joined 
SET TechSpecs = REPLACE (CAST(TechSpecs AS NVARCHAR(MAX)), '<script type="text/javascript" language="javascript">********</script>', '<script type="text/javascript" language="javascript">new text</script>' )

更新:使用 @Parkyprg 答案 这可以工作,但不会替换结束 标记。 我最终得到了这个。

I want to keep this string new text</script>

我们如何删除结束脚本标签?

UPDATE Products_Joined
SET TechSpecs = REPLACE(CAST(TechSpecs AS NVARCHAR(MAX)), 
SUBSTRING(CAST(TechSpecs AS NVARCHAR(MAX)),
CHARINDEX('<script type="text/javascript" language="javascript">',TechSpecs),
CHARINDEX('</script>',CAST(TechSpecs AS NVARCHAR(MAX))) - 
CHARINDEX('<script type="text/javascript" language="javascript">',TechSpecs)
),' new text') 

I am trying to figure out a way to update / replace only text between two strings.

For instance I need to be able to update the field and replace only what's in between the following script tags leaving the text before the opening script tag untouched.

I want to keep this string<script type="text/javascript" language="javascript">********</script>

I suppose REPLACE is not going to work as the text in between the script tags will vary. Is there some type of wildcard?

UPDATE Products_Joined 
SET TechSpecs = REPLACE (CAST(TechSpecs AS NVARCHAR(MAX)), '<script type="text/javascript" language="javascript">********</script>', '<script type="text/javascript" language="javascript">new text</script>' )

UPDATED: with @Parkyprg answer This works but doesn't replace the closing </script> tag.
I end up with this.

I want to keep this string new text</script>

How do we remove the closing script tag as well?

UPDATE Products_Joined
SET TechSpecs = REPLACE(CAST(TechSpecs AS NVARCHAR(MAX)), 
SUBSTRING(CAST(TechSpecs AS NVARCHAR(MAX)),
CHARINDEX('<script type="text/javascript" language="javascript">',TechSpecs),
CHARINDEX('</script>',CAST(TechSpecs AS NVARCHAR(MAX))) - 
CHARINDEX('<script type="text/javascript" language="javascript">',TechSpecs)
),' new text') 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

胡大本事 2025-01-02 10:06:40
DECLARE @OpenTag varchar(100)
SET @OpenTag = '<script type="text/javascript" language="javascript">'

UPDATE Products_Joined
SET TechSpecs  = STUFF(TechSpecs ,
                       CHARINDEX(@OpenTag, TechSpecs ,1)  + LEN(@OpenTag),
                            CHARINDEX('</script>',TechSpecs ,1)-(CHARINDEX(@OpenTag, TechSpecs ,1)  + LEN(@OpenTag)), 
                       'New Text')
DECLARE @OpenTag varchar(100)
SET @OpenTag = '<script type="text/javascript" language="javascript">'

UPDATE Products_Joined
SET TechSpecs  = STUFF(TechSpecs ,
                       CHARINDEX(@OpenTag, TechSpecs ,1)  + LEN(@OpenTag),
                            CHARINDEX('</script>',TechSpecs ,1)-(CHARINDEX(@OpenTag, TechSpecs ,1)  + LEN(@OpenTag)), 
                       'New Text')
梦罢 2025-01-02 10:06:40

这可能不是最好的解决方案,但是......

UPDATE Products_Joined
SET TechSpecs = REPLACE(TechSpecs, 
SUBSTRING(TechSpecs,
  CHARINDEX('<script type="text/javascript" language="javascript">',TechSpecs),
  CHARINDEX('</script>',TechSpecs) - 
  CHARINDEX('<script type="text/javascript" language="javascript">',TechSpecs)
)
FROM MyTable

It may not be the best solution, but...

UPDATE Products_Joined
SET TechSpecs = REPLACE(TechSpecs, 
SUBSTRING(TechSpecs,
  CHARINDEX('<script type="text/javascript" language="javascript">',TechSpecs),
  CHARINDEX('</script>',TechSpecs) - 
  CHARINDEX('<script type="text/javascript" language="javascript">',TechSpecs)
)
FROM MyTable
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文