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

Тема в разделе "SQL", создана пользователем -, 9 мар 2007.

  1. Гость

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

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

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

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Чистыми средствами SQL (SQL'92) такое не провернуть. Тут либо PHP, либо хранимые процедуры (уж не знаю как с ними дела обстоят в Мускуле). Похожую задачу на Оракле делал ХП
     
  3. Гость

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

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Может я не правильно выразился. Такой стандартной ХП в Оракле нет (или я про нее не знаю). Писал свою, в которой все ручками делал
     
  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, возможно, есть аналоги.
     
  6. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    <!--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, а он вполне подходит.
     
Загрузка...
Похожие Темы - Запрос для изменения
  1. hurricane1
    Ответов:
    6
    Просмотров:
    1.682
  2. ezhov
    Ответов:
    83
    Просмотров:
    13.116
  3. vvlad
    Ответов:
    9
    Просмотров:
    4.685
  4. DNT
    Ответов:
    15
    Просмотров:
    6.410
  5. mrtg
    Ответов:
    14
    Просмотров:
    210

Поделиться этой страницей