1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

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

  1. Гость

    Репутация:
    0
    привет.
    подскажите.

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

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

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

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

    Репутация:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    2
    Может я не правильно выразился. Такой стандартной ХП в Оракле нет (или я про нее не знаю). Писал свою, в которой все ручками делал
     
  5. ????

    ???? Гость

    Репутация:
    0
    <!--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

    Репутация:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    2
    <!--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. ????

    ???? Гость

    Репутация:
    0
    <!--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, а он вполне подходит.
     
Загрузка...

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