MySQL: как я могу удалить конечный HTML из поля в базе данных? - PullRequest
2 голосов
/ 09 сентября 2010

Я хочу удалить какой-то мошеннический HTML-код из поля БД, которое должно содержать простое имя файла.Пример поля ok:

myfile.pdf

Пример поля ok:

myfile2.pdf<input type="hidden" id="gwProxy" />...

Кто-нибудь знает запрос, который я могу выполнить, который может удалить часть HTML, но оставить имя файла?т.е. удалить все, начиная с первого символа < и далее.

Предположим, что поле называется myattachment и определено как varchar(250), а таблица называется mytable в базе данных MySQL.


Справочная информация ( не нужно читать ):

Однако в поле в нашей базе данных должны быть имена файлов из-за проблемы (, задокументированной здесь) некоторые поля теперь содержат имя файла , а некоторые изгоев HTML .Мы исправили проблему с корнем и теперь должны исправить поврежденные поля.Раньше я заменял текст, используя такой запрос:

UPDATE mytable SET myattachment = replace(myattachment, 'JPG', 'jpg') WHERE myattachment LIKE '%JPG';

1 Ответ

1 голос
/ 09 сентября 2010

Этот запрос работает нормально, кто-нибудь может увидеть какие-либо проблемы с ним?

UPDATE mytable
   SET myattachment = SUBSTRING_INDEX(myattachment, '<', 1) 
 WHERE `myattachment` LIKE '%<%';

Для документов по SUBSTRING_INDEX см. Справочную страницу mysql .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...