• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Запрос для изменения только части поля

  • Автор темы Guest
  • Дата начала
G

Guest

привет.
подскажите.

вот есть поле MEMO в MySQL. наховём его "posts"
в поле MEMO идёт текст с гиперссылками.
я хочу во всех полях MEMO этой таблицы поменять ссылки с <a href="http:// на <a href="url.php?url=http://
в общем хочу ссылки все во всей таблице заменить по этому принципу.
всё бы хорошо, но ссылки идут в перемешку с текстом.

как бы это дело можно провернуть, без привлечения PHP с регулярными выражениями.
т.е. только средствами SQL?
 
E

European

т.е. только средствами SQL?
Чистыми средствами SQL (SQL'92) такое не провернуть. Тут либо PHP, либо хранимые процедуры (уж не знаю как с ними дела обстоят в Мускуле). Похожую задачу на Оракле делал ХП
 
G

Guest

а есть в MySQL такие процедуры?
а то 100000 записей сложно будет так отпарсить
 
E

European

Может я не правильно выразился. Такой стандартной ХП в Оракле нет (или я про нее не знаю). Писал свою, в которой все ручками делал
 
?

????

<!--QuoteBegin-European+12:03:2007, 11:37 -->
<span class="vbquote">(European @ 12:03:2007, 11:37 )</span><!--QuoteEBegin-->Такой стандартной ХП в Оракле нет
[snapback]58718" rel="nofollow" target="_blank[/snapback]​
[/quote]
есть REPLACE(строка_символов, строка_поиска [, строка_замены])

[sql]update blabla set blabla = replace(blabla, '<a href="http://', '<a href="url.php?http://')[/sql]

ps. это для oracle, для mysql, возможно, есть аналоги.
 
E

European

<!--QuoteBegin-????+12:03:2007, 10:29 -->
<span class="vbquote">(???? @ 12:03:2007, 10:29 )</span><!--QuoteEBegin-->есть REPLACE(строка_символов, строка_поиска [, строка_замены])
[snapback]58725" rel="nofollow" target="_blank[/snapback]​
[/quote]
Тормознул... Да, конечно! Только вот из хелпа:
Both search_string and replacement_string, as well as char, can be any of the datatypes CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB. The string returned is of VARCHAR2 datatype and is in the same character set as char.

На счет работы с BLOB я не уверен. Или Memo это не BLOB?
 
?

????

<!--QuoteBegin-European+12:03:2007, 13:39 -->
<span class="vbquote">(European @ 12:03:2007, 13:39 )</span><!--QuoteEBegin-->BLOB
[snapback]58734" rel="nofollow" target="_blank[/snapback]​
[/quote]
blob - binary large object. аналогом memo можно назвать clob - char large object, а он вполне подходит.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!