我有一个表,其中一个列中存有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>
答案 0 :(得分:0)
如果我理解你的问题,这听起来最合乎逻辑。
update tablename
set procedure = '<p></p>'
where [procedure] like '%;amp;%[!a-z]%'
or [procedure] like '%;gt;[a-z]%'
or [procedure] like '%;lt;[a-z]%'
答案 1 :(得分:0)
这就是我目前所倾向的。我认为在我弄清楚用户输入数据的方式之前,添加存储过程或触发器也会有所帮助。
update table
set [procedure] = REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
[procedure], '&gt;','>')
, '&lt;','<')
, '&quot;','"')
, ' ',' ')
, '"', '"')