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

Удаление товаров c определённым количеством через SQL


Recommended Posts

выведите товаров в админке по 500 или 1000 (делается в настройках, вкладка опции) и отсортируйте товар по кол-ву и удалите в ручную. как вариант. 

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


select product_id from oc oc_product where quantity = 10

{

delete * from oc_product where product_id = $query['product_id']
delete * from oc_product_description where product_id = $query['product_id']

....

}

Подставить php синтаксис.
И удалять в цикле в каждой нужной таблице.
Как-то так.

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

5 минут назад, magneto2010 сказал:

выведите товаров в админке по 500 или 1000 (делается в настройках, вкладка опции) и отсортируйте товар по кол-ву и удалите в ручную. как вариант. 

6000 товаров как то не сильно охотно удалять ручками :)

 

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


DELETE t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15 FROM oc_product AS t1
LEFT JOIN oc_product_attribute AS t2 ON(t1.product_id=t2.product_id)
LEFT JOIN oc_product_description AS t3 ON(t1.product_id=t3.product_id)
LEFT JOIN oc_product_discount AS t4 ON(t1.product_id=t4.product_id)
LEFT JOIN oc_product_image AS t5 ON(t1.product_id=t5.product_id)
LEFT JOIN oc_product_option AS t6 ON(t1.product_id=t6.product_id)
LEFT JOIN oc_product_option_value AS t7 ON(t1.product_id=t7.product_id)
LEFT JOIN oc_product_related AS t8 ON(t1.product_id=t8.product_id)
LEFT JOIN oc_product_reward AS t9 ON(t1.product_id=t9.product_id)
LEFT JOIN oc_product_special AS t10 ON(t1.product_id=t10.product_id)
LEFT JOIN oc_product_to_category AS t11 ON(t1.product_id=t11.product_id)
LEFT JOIN oc_product_to_download AS t12 ON(t1.product_id=t12.product_id)
LEFT JOIN oc_product_to_layout AS t13 ON(t1.product_id=t13.product_id)
LEFT JOIN oc_product_to_store AS t14 ON(t1.product_id=t14.product_id)
LEFT JOIN oc_review AS t15 ON(t1.product_id=t15.product_id)
WHERE t1.product_id
IN (SELECT product_id FROM (SELECT product_id FROM `oc_product` WHERE quantity = 999) x)

взято отсюда и поправлено под твои нужны  https://opencartforum.com/topic/119693-udalenie-dubley-po-tipu-tovar1tovar1-pomosch/

 

Только бекап сделай на всякий случай.

 

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

бекап, бекап, бекап

 

CREATE TABLE tmp_t CREATE SELECT product_id FROM oc_product WHERE quantity = 0;

DELETE FROM p FROM oc_product_attribute p
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_product_description p
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_product_discount p
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM  oc_product_filter p 
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_product_image p
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_product_option p
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_product_option_value p
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_product_related p
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_product_reward p
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_product_special p
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_product_to_category p 
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_product_to_download p
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_product_to_layout p
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_product_to_store p
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_review p
INNER JOIN tmp_t t on t.product_id = p.product_id;

DELETE FROM p FROM oc_url_alias p
INNER JOIN tmp_t t WHERE p.query = CAONCAT('product_id=',t.product_id);


DELETE FROM p FROM  oc_products p
INNER JOIN tmp_t t on t.product_id = p.product_id;

Если не ошибся при копипасте

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

24 минуты назад, chukcha сказал:

Чего вы сказали?

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

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

DELETE p1,
       p2,
       p3,
       p4,
       p5,
       p6,
       p7,
       p8,
       p9,
       p10,
       p11,
       p12,
       p13,
       p14,
       p15,
       p16
FROM `oc_product` p1
LEFT JOIN `oc_product_attribute` p2 ON (p2.product_id = p1.product_id)
LEFT JOIN `oc_product_description` p3 ON (p3.product_id = p1.product_id)
LEFT JOIN `oc_product_discount` p4 ON (p4.product_id = p1.product_id)
LEFT JOIN `oc_product_filter` p5 ON (p5.product_id = p1.product_id)
LEFT JOIN `oc_product_image` p6 ON (p6.product_id = p1.product_id)
LEFT JOIN `oc_product_option` p7 ON (p7.product_id = p1.product_id)
LEFT JOIN `oc_product_option_value` p8 ON (p8.product_id = p1.product_id)
LEFT JOIN `oc_product_recurring` p9 ON (p9.product_id = p1.product_id)
LEFT JOIN `oc_product_related` p10 ON (p10.product_id = p1.product_id)
LEFT JOIN `oc_product_reward` p11 ON (p11.product_id = p1.product_id)
LEFT JOIN `oc_product_special` p12 ON (p12.product_id = p1.product_id)
LEFT JOIN `oc_product_to_category` p13 ON (p13.product_id = p1.product_id)
LEFT JOIN `oc_product_to_download` p14 ON (p14.product_id = p1.product_id)
LEFT JOIN `oc_product_to_layout` p15 ON (p15.product_id = p1.product_id)
LEFT JOIN `oc_product_to_store` p16 ON (p16.product_id = p1.product_id)

WHERE p1.quantity = 999

 

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


4 часа назад, Dozent сказал:

6000 товаров как то не сильно охотно удалять ручками :)

 

 

6 страниц по 1000 или 12 по 500 лень? не отвечайте, вам скорее всего лень.

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


Не проще ли выбрать все товары с количеством 999 и прогнать через функцию productDelete или как там ее)

Один sql запрос и один цикл

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

23 минуты назад, Leingard сказал:

Не проще ли выбрать все товары с количеством 999 и прогнать через функцию productDelete или как там ее)

Один sql запрос и один цикл

Всё правильно 

Даже в родную функцию delete передать не чекбоксы, а массив товаров у которых количество 999

С этим справится любой и будет кошернее чем эти адовые запросы 

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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