2016-04-15 5 views
-1

Я пытаюсь удалить все ссылки из column_content в my_table_name. ссылки выглядят как:SQL найти и заменить текст внутри столбца

<a style="text-decoration:none" href="/index.php?o=oda-res-site">.</a> 

и href="........" отличается в каждой записи.

Вы можете помочь с утверждением с помощью подстановочных знаков, которые очистят все ссылки <a ..../a>?

Я попытался это:

UPDATE MyTable 
SET StringColumn = REPLACE (StringColumn, 'SearchForThis', 'ReplaceWithThis') 

но не удалось найти соответствующие подстановочные знаки, чтобы включить -если possible- все ссылки.

Спасибо Я использую PhpMyAdmin

+2

Какую программу управления базами данных вы используете? добавьте тег для 'sql-server',' MySQL' или что-то еще. – Smandoli

+1

Какая информация находится в записи 'column_content'? Может ли быть несколько ссылок? – Smandoli

+0

'regexp_replace()' приходит на ум –

ответ

0

Если это SQL Server вы используете, REPLACE не обрабатывает символы или регулярное выражение, так что вы должны цикла с использованием PATINDEX вместо этого.

Regex pattern inside SQL Replace function?

0

Хм ... Если я вас правильно, решение не должно быть трудно. Следуя примеру кода на основе вашего примера:

DECLARE @MyString nvarchar(250) = N'<a style="text-decoration:none" href="/index.php?o=oda-res-site">.</a>'; 
SELECT @MyString as MyOldString, LEFT(@MyString, CHARINDEX('href="', @MyString)+5) + '">.</a>' as MyNewString 
+0

Спасибо за вашу попытку, но это не сработало. У меня есть базовые знания в mysql, поэтому я просто скопирую вставку выше на вкладке phpMyAdmin> sql. Ошибка: # 1064 - У вас есть ошибка в синтаксисе SQL; – geoplous

+0

О, хорошо, если это mysql, запрос может потребовать некоторой модификации. Я тестировал его на Sqlserver. Угадайте, что вам может потребоваться использовать instring или подобное вместо charindex. Я не знаком с mysql. – Tyron78

Смежные вопросы