Якщо ви адмініструєте OpenCart, то рано чи пізно виникає необхідність щось масово змінити чи отримати з бази даних. Ми пропонуємо підбірку корисних MySQL запитів для OpenCart.
1. Пошук і заміна певної фрази в назвах товарів:
 UPDATE `oc_product_description` SET name = REPLACE(name, 'старий текст', 'новий текст');
 2. Пошук і заміна певної фрази в описах товарів:
 UPDATE `oc_product_description` SET description = REPLACE(description, 'старий текст', 'новий текст');
 3. Замінити артибут в товарах (для об'єднання однакових атрибутів в один і видалення дублів):
 UPDATE `oc_product_attribute` SET `attribute_id`='1' WHERE `attribute_id`='2';
 4. Знайти всі дублі SEO URL
 SELECT keyword, COUNT(*) counter FROM `oc_seo_url` GROUP BY keyword HAVING counter > 1;
 5. Знайти товари з однаковими назвами
 SELECT name, COUNT(*) counter FROM `oc_product_description` GROUP BY name HAVING counter > 1;
 6. Отримати ID категорій товару
 SELECT category_id FROM `oc_product_to_category` WHERE product_id = '99'
 7. Отримати ID головної категорії товару (для ocStore або при наявності SeoPro)
 SELECT category_id FROM `oc_product_to_category` WHERE product_id = '99' AND main_category = '1'
 8. Оновити всі ціни, помножити на коефіцієнт 1.2
 UPDATE `oc_product` SET price = (price * 1.2)
 9. Відновити доступ в адмінку OpenCart - створити нового адміністратора з логіном "opencart" і паролем "opencart"
 INSERT INTO `oc_user` (`user_group_id`, `username`, `password`, `salt`, `firstname`, `lastname`, `email`, `image`, `code`, `ip`, `status`, `date_added`) VALUES ( '1', 'opencart', '4e8e674a6e2060d38cdda9e614949901e0ff4073', 'wxhCo24Fv', 'Firstname', 'Lastname', 'opencart@opencart.com', '', '', '', '1', '2020-01-01 10:00:00');
 10. Скинути пароль адміністратора з логіном "admin" - встановити йому пароль "opencart"
 UPDATE `oc_user` SET `password` = '4e8e674a6e2060d38cdda9e614949901e0ff4073', `salt` = 'wxhCo24Fv' WHERE username = 'admin'
 11. Додати назву магазину у кінець заголовка Meta Title товару
 UPDATE `oc_product_description` SET meta_title = CONCAT(meta_title, " - Мій магазин")
 12. Видалити категорії без назв і описів
DELETE c FROM `oc_category` AS c LEFT JOIN `oc_category_description` AS cd USING (category_id) WHERE cd.category_id IS NULL;
 13. Масове видалення атрибута в усіх товарах і видалення самого атрибута з системи
SET @attribute_id = 123; 
DELETE FROM `oc_product_attribute` WHERE `attribute_id` = @attribute_id; 
DELETE FROM `oc_attribute_description` WHERE `attribute_id` = @attribute_id; 
DELETE FROM `oc_attribute` WHERE `attribute_id` = @attribute_id;
 14. Скопіювати дані з однієї таблиці в іншу таблицю. 
INSERT INTO `oc_manufacturer_description` (manufacturer_id, meta_h1) SELECT manufacturer_id, name AS meta_h1 FROM oc_manufacturer;
Цей запит виконає копіювання з oc_manufacturer у таблицю oc_manufacturer_description.
 15. Зробити всі значення атрибутів у товарах "з великої літери":
UPDATE `oc_product_attribute` SET text = CONCAT(UCASE(LEFT(text, 1)), SUBSTRING(text, 2));
 16. Масово замінити значення атрибута у товарах:
UPDATE `oc_product_attribute` SET text = 'Нове значення' WHERE text = 'Старе значення';
 17. Видалити країну та її регіони в OpenCart:
DELETE FROM oc_zone WHERE country_id = 176;
DELETE FROM oc_country WHERE country_id = 176;
 18. Масово видалити країни та їх регіони, крім вказаних країн по id:
DELETE FROM oc_zone WHERE country_id NOT IN ('67','117','123','170');
DELETE FROM oc_country WHERE country_id NOT IN ('67','117','123','170');
 19. Скинути ключі AUTO INCREMENT для основних таблиць БД після видалення демо даних:
ALTER TABLE oc_category AUTO_INCREMENT = 1;
ALTER TABLE oc_manufacturer AUTO_INCREMENT = 1;
ALTER TABLE oc_product AUTO_INCREMENT = 1;
ALTER TABLE oc_attribute AUTO_INCREMENT = 1;
ALTER TABLE oc_option AUTO_INCREMENT = 1;
ALTER TABLE oc_order AUTO_INCREMENT = 1;
 Стаття буде доповнюватись корисними MySQL запитами для роботи з таблицями бази даних OpenCart