Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Замена слова во всех таблицах MySQL


grishka0007

Recommended Posts

Здравствуйте!

Скажите пожалуйста, можно ли в БД сделать такой запрос, который заменил бы во всех таблицах одно слово на другое с учетом регистра? Или, хотя-бы, без учета регистра.

Например заменить слово "Опенкарт" на "Opencart"

Я погуглил, но чет не смог разобраться.

Заранее спасибо!

Надіслати
Поділитися на інших сайтах


Такого запроса не существует. Можно написать группу запросов к каждой таблице.

 

Надіслати
Поділитися на інших сайтах

выгрузить полный дамп БД

произвести массовую замену в Notepad++

сохранить и загрузить дамп обратно

 

ps: сильно желательно делать бекап и понимать структуру mysql, чтобы не накосячить с заменой

  • +1 1
Надіслати
Поділитися на інших сайтах

Стало любопытно, зачем менять везде?

Вот я лично не помню, чтобы слово "Opencart" было во всех таблицах.

Это одно слово- что? Атрибут, опция, значение атрибута, опции, название товара, слово в описании товара? наименование элемента интерфейса? надпись на кнопке?

Змінено користувачем jaffagold
Надіслати
Поділитися на інших сайтах


jaffagold, на самом деле, всё сложнее. У меня был магазин, с определенным названием. И все было хорошо долгое время, пока недавно мне не написал правообладатель товарного знака, которым мой магазин назывался. Мы договорились в досудебном порядке урегулировать возникшую ситуацию. И мне теперь нужно убрать все упоминания его товарного знака на своем сайте. Естественно за время существования магазина, прописаться это название успело везде: в статьях, тайтлах, дескрипшнах, н1, мета тегах, описаниях товаров, категорий, и, вроде, всё.. Вот я и думаю как бы этот процесс автоматически произвести, то есть найти старое название магазина, и заменить новым. Вот такая стори

Надіслати
Поділитися на інших сайтах


AlexDW, Спасибо за совет. Попробую поэкспериментировать с этим способом, хотя пока не понимаю как это будет)

А может есть какие-нибудь программы для os x для работы с mySQL в которых можно это сделать, или через терминал, не знаете?

Надіслати
Поділитися на інших сайтах


Slavikovna, простите, а могли бы подсказать, как такая группа запросов должна выглядеть? 

Я так понимаю, что запрос должен быть с такой структурой?

UPDATE `table` SET `column` = REPLACE( column, 'search', 'replace' ) ;

Просто я не уверен, какие именно таблицы и колонки отвечают за все те данные что мне надо заменить, а именно в статьях, тайтлах, дескрипшнах, н1, мета тегах, описаниях товаров, категорий

Надіслати
Поділитися на інших сайтах


Заходите в phpmyadmin- Экспортируете в формате sql, открываете текстовым редактором (саблайм, нотпад) и заменяете слово. Потом назад импортируете

  • +1 1
Надіслати
Поділитися на інших сайтах


n3bo, AlexDW, так в итоге и сделал. Все прошло хорошо, спасибо вам за советы.

Открыл саблаймом, все заменил, импортировал обратно. Только одна ошибка всего вышла при импорте: в таблице address 

  ADD PRIMARY KEY (`address_id`),

  ADD KEY `customer_id` (`customer_id`);

Ответ MySQL: 

#1068 - Multiple primary key defined 

Но загуглил- вроде это не критично. К тому же, все равно оба ключа корректно импортировались и в customer id и в address id

 

Надіслати
Поділитися на інших сайтах


  • 2 years later...
On 5/28/2017 at 2:35 PM, Slavikovna said:

Такого запроса не существует. Можно написать группу запросов к каждой таблице.

 

а як виглядає запрос якщо для окремої таблиці?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.