Форум сетевых администраторов
Показаны 6 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- MySQL (http://netadmin.ws/forum/forumdisplay.php?forumid=40)
-- Поиск и замена в базе MySQL (http://netadmin.ws/forum/showthread.php?threadid=9220)


Помещено Greendrake 24-07-2004 в 13:41:

Поиск и замена в базе MySQL

Кто нибудь подскажет скрипт на php который бы по запросу рылся по базе и заменял все вхождения одной строки на другую?


Помещено rio 24-07-2004 в 14:00:

поконкретнее пожалйста.... лучше даже с примером ...

__________________
Ковчег построили дилетанты, а профессионаллы построили "Титаник" - не бойтесь спрашивать то , чего вы не знаете , а так же делать то - чего не умеете !


Помещено Greendrake 24-07-2004 в 14:12:

Ну например в том же phpMyAdmin есть опция поиска по заданным таблицам, но нет замены, что, на мой взгляд, весьма странно. А задача довольно тривиальна - есть куча шаблонов оформления к сайту, и в каждом из них нужно заменить, скажем, текст копирайта или что-то ещё, не важно. Фишка только в том, что шаблоны эти не в виде файлов лежат (в этом случае я пользуюсь прогой MREPLACE), а забиты в базу MySQL.


Помещено Jovani 24-07-2004 в 15:36:

Если что-то несложное, то можно просто выполнить через phpMyAdmin, SQL-запрос.
Например запрос:

code:

UPDATE table SET field = REPLACE(field, 'text1', 'text2');


Ð_езультат: text1 -> text2
Сделает замену, в указанном имени таблицы и поля.

Другой пример:

code:
UPDATE table SET field='text2' WHERE field LIKE 'выражение'; 


Здесь выражение может содержать специальные символы - '%' или '_'. Процент заменяет любую строку (в т.ч. пустую), символ подчеркивания - любой одиночный символ. Так, 'tex%' вернет значения 'tex', 'text', 'text 1234', a 'te_t' вернет 'text', 'test' и т.д.

Можно делать и более сложные запросы, почитай справочник.


Помещено Greendrake 26-07-2004 в 18:22:

Наскока я понимаю нужно делать по запросу для каждого из полей каждой таблицы. А если надо прогнать сразу кучу? Но спасибо все равно .
Кстати, нашёл способ, тупой как лом, но задо действует безотказно:
1. Ð_кспортируем базу в *.sql файл
2. Делаем для него Search/Replace в текстовом редакторе.
3. Импортируем файл обратно в базу


Помещено Jovani 26-07-2004 в 19:45:

quote:
Наскока я понимаю нужно делать по запросу для каждого из полей каждой таблицы.

Нет, какие укажешь в запросе, те и будут обрабатываться.

И еще, учти, что если у тебя поле типа TEXT, то там LIKE не канает.

quote:

Кстати, нашёл способ, тупой как лом, но задо действует безотказно

Для маленьких таблиц возможно он хорош, а вот с большими таблицами будет проблематично ...


Формат времени GMT. Текущее время 06:15.
Показаны 6 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.