Перейти к контенту

Помогите с SQL'ем


Рекомендуемые сообщения

Переехал на другой хостинг.

Нужно по всей базе данных найти имясайта.ru и заменить на имясайта.net

 

Как в SQL'е это всё можно сделать? =)

Ссылка на комментарий
Поделиться на других сайтах

www.mysql.com

Поиск по слову UPDATE

 

Результат:

http://dev.mysql.com/doc/mysql/en/update.html

 

В комментах находим такой запрос

UPDATE xoops_bb_posts_text 
SET post_text=( 
REPLACE (post_text,
'morphix.sourceforge.net',
'www.morphix.org'));

Думаю понятно как тут поправить?

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

d1pro

Не понятно.. =(

Смотрел там же, причём на русском. Не ясно.

Как прошустрить по всей БД, и заменить скажем слово 12345 на asdfg.

 

Есть вариант засейвить всё что есть, и сделать замену, как в текстовом файле, но это есть изврат :D

Ссылка на комментарий
Поделиться на других сайтах

Мне желательно всю базу.

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

А нужно все.

Не перебирать же их по очереди.

 

UPDATE ibf_posts
SET post =( 
REPLACE (post ,
'Этот текст мы меняем',
'А этот будет'));

 

вместо ibf_posts и post неплохо бы * - но не пашет =(

Ссылка на комментарий
Поделиться на других сайтах

1. Создаем SQL дамп

2. Открываем в тхт редакторе (можна воспользоваться всякими реплейсерами, если вам они известны :D )

3. Заменяем.

4. Сохраняем

5. Восстанавливаем базу из дампа.

 

зы Только не нужно здесь кричать, что дамп большой, памяти не хватит и т.д. - Я открывал SQL файл размером около 150 метров с помощью EMEditor на машине со 128 метрами памяти и под управлением XP, и нормально (хотя и не 5 сек. заняло)...

Ссылка на комментарий
Поделиться на других сайтах

Про "изврат" я упоминал двумя постами выше =) С моим нынешним траффиком, быстрее всё-таки перебрать несколько десятков полей, чем делать бек-ап базы.
Ссылка на комментарий
Поделиться на других сайтах

Это не изврать а 100% возможность заменить где только возможно и не упустить ничего. + возможность, воспользовавшись регэкспами, произвести более точный, чем при простом реплейсе, поиск совпадений.
Ссылка на комментарий
Поделиться на других сайтах

Конечно вариант, но пожалуй мы пойдём другим путём :D

 

Всё-таки большинсво того что было нужно заменить, содержалось именно в постах юзверей.. Так что всё оставшееся будем уже доделывать ручками.

Ссылка на комментарий
Поделиться на других сайтах

>> Мне желательно всю базу.

А что ты понимаешь под всей базой ?

Ссылка на комментарий
Поделиться на других сайтах

*задумываясь на минуту, как лучше объяснить ребёнку :D*

 

Вот у меня есть под логином и пассом БД

А в ней содержатся:

ibf_admin_logs

ibf_admin_sessions

ibf_badwords

ibf_cache_store

и так далее. Возможно какие-то из этих таблиц к IPB отношения и не имеют, но всё равно обработке они подлежат.

Ссылка на комментарий
Поделиться на других сайтах

Ручками от силы десяток раз пустить один запрос (см. выше), лишь меняя имя таблицы да поля - нельзя что ли? Можно подумать в IPB 90% таблиц содержат поля, в 90% которых встречается искомое. Раз уж совсем лень - скрипт например на php, дёргаем список таблиц запросом SHOW TABLES, каждую прогоняем запросом SHOW COLUMNS, потом - пачка запросов на каждое поле и дааальше, к следующей таблице. Только это нахрен не нужно, проще руками всё сделать, если
всю базу
таким образом лопатить - уж очень накладно и ресурсоёмко будет, с кучкой нерезультативных запросов.
Ссылка на комментарий
Поделиться на других сайтах

Автоматически никак.

Компьютер не может знать что какое-то поле xxx в какой-то таблице yyyy - это id или name мембера.

Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...

Всем в теме фенкс :D

 

Так и сделал, методом поиск + замена полей в отдельных таблицах.

Всё-таки жаль что стандартно никак.

Ссылка на комментарий
Поделиться на других сайтах

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.