更新可能包含没有目标的 href 的表行的值
Posted
技术标签:
【中文标题】更新可能包含没有目标的 href 的表行的值【英文标题】:Update value of table row which could contain href without target 【发布时间】:2017-09-21 09:50:28 【问题描述】:假设您有一个名为 Information 的表,其中可能有两列 id 和 text_with_hrefs_with_or_without_target_blank,我们要更新它们
因此,例如,许多行中的一个可以将此值存储在 text_with_href 列中......
第一个 href 之前的目标为空白
<a target="_blank" href="http://link1.com">Link1</a>
可能是另一个文本并与目标链接
<a href="http://www.link2.com">Link2</a>
最后一个href链接在href之后带有目标空白
<a href="http://www.link3.com" target="_blank">Link3</a>
我想更新表信息中的所有类似行,以将target=_blank
添加到那些没有行的部分中的hrefs
所以我提到的这一行的结果看起来像
第一个 href 之前的目标为空白
<a target="_blank" href="http://link1.com">Link1</a>
可能是另一个文本并与目标链接
<a href="http://www.link2.com" target="_blank">Link2</a>
最后一个href链接在href之后带有目标空白
<a href="http://www.link3.com" target="_blank">Link3</a>
【问题讨论】:
在表示层处理得更好 虽然不是很推荐,但您可以使用正则表达式来执行此操作,我不是正则表达式专家。无法将其转换为 PG 语法,但我敢打赌,如果可以的话,它会起作用:***.com/a/6594276/2283954 ***.com/questions/1732348/… 【参考方案1】:正如 cmets 中所指出的,您最好在客户端/演示代码中执行此操作。
现在,如果您绝对需要在数据库中执行此操作,特别是如果它只是一次性的,并且假设您每行只有一个链接 <a></a>
,您可以执行这样简单的操作
UPDATE information
SET text_with_hrefs_with_or_without_target_blank =
replace(text_with_hrefs_with_or_without_target_blank, '<a ', '<a target="_blank" ')
WHERE text_with_hrefs_with_or_without_target_blank NOT LIKE '%target="_blank"%'
SQLFiddle
【讨论】:
以上是关于更新可能包含没有目标的 href 的表行的值的主要内容,如果未能解决你的问题,请参考以下文章