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

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

Guest

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

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

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

Guest

#3
а есть в MySQL такие процедуры?
а то 100000 записей сложно будет так отпарсить
 
04.09.2006
2 566
3
#4
Может я не правильно выразился. Такой стандартной ХП в Оракле нет (или я про нее не знаю). Писал свою, в которой все ручками делал
 
?

????

#5
<!--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, возможно, есть аналоги.
 
04.09.2006
2 566
3
#6
<!--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?
 
?

????

#7
<!--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, а он вполне подходит.