今天发现数据库有些字段被挂马了,插入了一堆乱七八糟的html,而且长短不一,但是都以<title>开头,如何能用一条sql语句批量替换清除??用replace 太麻烦,因为代码长短不一样。最好能批量替换每个字段找到第一个<title>之后的所有代码,不管后面长度多少都替换掉。

解决方案 »

  1.   


    --建议先把数据备份进新表,或者备份数据库
    select * into TableName_20150626_bak from TableName
    --TableName为表名,colName为需要更新的字段
    update TableName set colName=substring(colName,0, charindex('<title>',colName)) where colName like '%<title>%'可能不能完全满足你的要求,部分数据最好手动处理
      

  2.   

    不能再手动处理,就是需要一句sql执行就清除掉。替换该字段值里面,第一次出现<title>后的所有内容,不管他长短。
      

  3.   


    我写的代码就是实现[替换该字段值里面,第一次出现<title>后的所有内容,不管他长短]这个效果的,手动处理的意思是让你替换数据后,再检查一下数据是否存在其它异常情况,存在的话就要手动处理了