Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Заменить кусок текста во всей базе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: как лучше?
alxfro
Отправлено: 23 Октября, 2012 - 11:55:08
Post Id



Частый гость


Покинул форум
Сообщений всего: 208
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Есть база на 1 гигабайт.
Там иногда встречается слово "ololo".
Как лучше во всей базе его поменять на "blablabla"?
Через SQL или как?
 
 Top
DeepVarvar Супермодератор
Отправлено: 23 Октября, 2012 - 11:59:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Ну явно не руками. Радость Таблица или база с разными таблицами?
Хотя не важно. Вот пример:
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE tbl SET `field` = REPLACE(`field`, 'ololo', 'blablabla');

(Отредактировано автором: 23 Октября, 2012 - 12:00:01)

 
 Top
alxfro
Отправлено: 23 Октября, 2012 - 12:48:54
Post Id



Частый гость


Покинул форум
Сообщений всего: 208
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




DeepVarvar пишет:
Таблица или база с разными таблицами?

Да, там их куча.
 
 Top
DeepVarvar Супермодератор
Отправлено: 23 Октября, 2012 - 13:47:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




alxfro пишет:
Да, там их куча.
Вот каждую по образу и подобию указанному выше...
 
 Top
armancho7777777 Супермодератор
Отправлено: 23 Октября, 2012 - 13:55:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




DeepVarvar, Ваш пример запроса разве не пройдёт по всем полям таблицы ?
 
 Top
DeepVarvar Супермодератор
Отправлено: 23 Октября, 2012 - 14:01:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




нет, только по указанным, это же обычный апдейт
 
 Top
armancho7777777 Супермодератор
Отправлено: 23 Октября, 2012 - 14:24:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Блин, тупанул.
Запрос же можно реализовать таким образом, что бы он прошёлся по всем полям где найдёт слово 'ololo' ?
Может, вложенный запрос...

(Отредактировано автором: 23 Октября, 2012 - 14:24:41)

 
 Top
DeepVarvar Супермодератор
Отправлено: 23 Октября, 2012 - 14:43:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Ну, меня бы устроило и так:
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE tbl SET
  2.   a = REPLACE(a, 'ololo', 'blablabla'),
  3.   b = REPLACE(b, 'ololo', 'blablabla'),
  4.   c = REPLACE(c, 'ololo', 'blablabla'),
  5.   d = REPLACE(d, 'ololo', 'blablabla');
 
 Top
armancho7777777 Супермодератор
Отправлено: 23 Октября, 2012 - 14:56:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




DeepVarvar пишет:
Ну, меня бы устроило и так:

А если их 1000 ?
Я не думал над реализацией, но думаю, что по любому есть красивое решение...
 
 Top
DeepVarvar Супермодератор
Отправлено: 23 Октября, 2012 - 14:59:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




1000 таблиц? или 1000 полей?
 
 Top
armancho7777777 Супермодератор
Отправлено: 23 Октября, 2012 - 15:02:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Полей конечно, каких таблиц ))
Упаси Господи Радость
 
 Top
DeepVarvar Супермодератор
Отправлено: 23 Октября, 2012 - 15:05:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Да если в одной таблице столько полей, то стоит задуматься - правильно ли задумана структура всей базы.
Хотя что мешает:


Обработать, сгенерить запросы, запустить и жить спокойно, хоть там 1000 и в каждой 1000 полей.
 
 Top
armancho7777777 Супермодератор
Отправлено: 23 Октября, 2012 - 15:07:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Не столбцов, а полей.
Ну, то есть, записей.

Я изначально и имел в виду записи ))
Потом сам запутался ))
Я имел в виду, что Ваш пример запроса обновит же все записи ?)
(Добавление)

Надо бы отдохнуть, а то бошка уже реально не варит...
Туплю на тривиальных примерах уже ...

(Отредактировано автором: 23 Октября, 2012 - 15:11:21)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB