Если вы администрируете 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" - установить ему пароль "password"
UPDATE `oc_user` SET `password` = '2b8c0d3013806177d1b28964cc38f8f0c3116b37',`salt` = '3ff8W98lI' 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 = 'Старое значение';
Статья будет дополняться полезными MySQL запросами для работы с таблицами базы данных OpenCart