За последние 24 часа нас посетили 17609 программистов и 1626 роботов. Сейчас ищут 1780 программистов ...

Замена значений в базе

Тема в разделе "MySQL", создана пользователем antonn, 12 апр 2008.

  1. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    Я сейчас далеко от своих ман и вебсерверов, но мысль покоя не дает :)
    В базе в разных таблицах есть текстовое значение (bbcode), которое нужно заменить или убрать. Если какая то внутряя функция которая поменяет внутри указанной таблицы одну подстроку на другую в каком то поле?
    база большая, не хотелось бы "вручную" делать запрос и потом update.
     
  2. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    [sql]update test1 set name = REPLACE(`name`,'str_old','str_new') WHERE `name` like '%str_old%';[/sql]
    Только как быстро он будет выполнятся?
     
  3. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    мне его запустить всего один раз, просто поменял кое чего в бб-кодах, костыли на обратную поддержку делать не хочу :)
    приду домой попробую, спасибо :)
     
  4. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    antonn
    если будет не лениво, заодно замерь, как быстро он работает :)
     
  5. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    ой, забыл замерить :)
    на глаз - чуть больше секунды на 8 проходов (в цикле, там 8 ббкодов) в табличке на 15Мб, поле типа TEXT. На винде, на пхп 4** и C2D 6420 :)