SQL - 如何清理损坏的 html 列?
SQL - how can I clean up corrupted html column?
我有一个 table,其中一列存储了 html。一些数据似乎已损坏并且有很多代码应该
<p></p>
而是有:
<p> </p><p>&lt;p&gt;&amp;lt;p&amp;gt;&amp;amp;lt;p&amp;amp;gt;
最好的清洁方法是什么?我已经能够使用以下方法识别大约 200 行:
select [procedure], * from table
where [procedure] like '%;amp;%[!a-z]%'
or [procedure] like '%;gt;[a-z]%'
or [procedure] like '%;lt;[a-z]%'
更新:
坏细胞的一个例子是:
<p> </p><p>&lt;p&gt;&amp;lt;p&amp;gt;&amp;amp;lt;p&amp;amp;gt;This CR documents the ILO CRC meeting for units 2&amp;amp;amp;amp;3 on 9/17/14.&amp;amp;lt;/p&amp;amp;gt;&amp;amp;lt;p&amp;amp;gt;Management has been notified.&amp;amp;lt;/p&amp;amp;gt;&amp;lt;/p&amp;gt;&lt;/p&gt;</p><p> </p>
如果我正确理解你的问题,这听起来最符合逻辑。
update tablename
set procedure = '<p></p>'
where [procedure] like '%;amp;%[!a-z]%'
or [procedure] like '%;gt;[a-z]%'
or [procedure] like '%;lt;[a-z]%'
这就是我目前的倾向。我认为添加存储过程或触发器也会有所帮助,直到我弄清楚用户是如何输入数据的。
update table
set [procedure] = REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
[procedure], '&gt;','>')
, '&lt;','<')
, '&quot;','"')
, ' ',' ')
, '"', '"')
我有一个 table,其中一列存储了 html。一些数据似乎已损坏并且有很多代码应该
<p></p>
而是有:
<p> </p><p>&lt;p&gt;&amp;lt;p&amp;gt;&amp;amp;lt;p&amp;amp;gt;
最好的清洁方法是什么?我已经能够使用以下方法识别大约 200 行:
select [procedure], * from table
where [procedure] like '%;amp;%[!a-z]%'
or [procedure] like '%;gt;[a-z]%'
or [procedure] like '%;lt;[a-z]%'
更新: 坏细胞的一个例子是:
<p> </p><p>&lt;p&gt;&amp;lt;p&amp;gt;&amp;amp;lt;p&amp;amp;gt;This CR documents the ILO CRC meeting for units 2&amp;amp;amp;amp;3 on 9/17/14.&amp;amp;lt;/p&amp;amp;gt;&amp;amp;lt;p&amp;amp;gt;Management has been notified.&amp;amp;lt;/p&amp;amp;gt;&amp;lt;/p&amp;gt;&lt;/p&gt;</p><p> </p>
如果我正确理解你的问题,这听起来最符合逻辑。
update tablename
set procedure = '<p></p>'
where [procedure] like '%;amp;%[!a-z]%'
or [procedure] like '%;gt;[a-z]%'
or [procedure] like '%;lt;[a-z]%'
这就是我目前的倾向。我认为添加存储过程或触发器也会有所帮助,直到我弄清楚用户是如何输入数据的。
update table
set [procedure] = REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
[procedure], '&gt;','>')
, '&lt;','<')
, '&quot;','"')
, ' ',' ')
, '"', '"')