我想从一个应该包含简单文件名的DB字段中删除一些流氓HTML。 ok字段示例:
myfile.pdf
不好的字段示例:
myfile2.pdf<input type="hidden" id="gwProxy" />...
有没有人知道我可以运行的查询可以删除HTML部分但保留文件名?即从第一个<
字符开始删除所有内容。
让我们假设该字段被称为myattachment
并被定义为varchar(250)
,并且该表在MySQL数据库中被称为mytable
。
背景信息(无需阅读):
我们数据库中的字段应该包含文件名,但是由于问题(documented here),某些字段现在包含文件名和一些流氓HTML 。我们已修复根问题,现在需要修复损坏的字段。在过去,我使用这种查询替换了文本:
UPDATE mytable SET myattachment = replace(myattachment, 'JPG', 'jpg') WHERE myattachment LIKE '%JPG';
答案 0 :(得分:1)
此查询似乎正常,任何人都可以看到它有任何问题吗?
UPDATE mytable
SET myattachment = SUBSTRING_INDEX(myattachment, '<', 1)
WHERE `myattachment` LIKE '%<%';
对于SUBSTRING_INDEX
上的文档,请参阅mysql manual page。