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

Как удалить товары с пустым описанием?


Recommended Posts

Подскажите пожалуйста как удалить товары из БД все товары у которых пустое описание?
Помогите написать правильный запрос в базу.
Если такое возможно.

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


59 минут назад, kikaridza123 сказал:

Подскажите пожалуйста как удалить товары из БД все товары у которых пустое описание?
Помогите написать правильный запрос в базу.
Если такое возможно.

 

лучше их собрать и удалить через deleteProduct чтобы все таблицы почистить

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

Но товары с <p></p> - по идее тоже пустые

И как выше было сказано, про языки
И ка выше было сказано - одним запросом не обойтись

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

Одним не обойтись, а двумя можно всё грохнуть )

Это для одного языка

Если языков больше - надо запрос подшаманить

Если описания с пустыми HTML тегами тоже считать пустыми, можно вместо t0.description = '' отбирать по длине описания CHAR_LENGTH(t0.description) < 20

DELETE `t01`,`t02`,`t03`,`t04`,`t05`,`t06`,`t07`,`t08`,`t09`,`t10`,`t11`,`t12`,`t13`,`t14`,`t15`,`t16`,`t17`,`t18`,`t19`
FROM `oc_product_description`		AS `t0`
LEFT JOIN `oc_product`			AS `t01` ON(`t0`.`product_id` = `t01`.`product_id`) 
LEFT JOIN `oc_product_attribute`	AS `t02` ON(`t0`.`product_id` = `t02`.`product_id`)
LEFT JOIN `oc_product_discount`		AS `t03` ON(`t0`.`product_id` = `t03`.`product_id`)
LEFT JOIN `oc_product_filter`		AS `t04` ON(`t0`.`product_id` = `t04`.`product_id`)
LEFT JOIN `oc_product_image`		AS `t05` ON(`t0`.`product_id` = `t05`.`product_id`)
LEFT JOIN `oc_product_option`		AS `t06` ON(`t0`.`product_id` = `t06`.`product_id`)
LEFT JOIN `oc_product_option_value`	AS `t07` ON(`t0`.`product_id` = `t07`.`product_id`)
LEFT JOIN `oc_product_recurring`	AS `t08` ON(`t0`.`product_id` = `t08`.`product_id`)
LEFT JOIN `oc_product_related`		AS `t09` ON(`t0`.`product_id` = `t09`.`product_id`)
LEFT JOIN `oc_product_related`		AS `t10` ON(`t0`.`product_id` = `t10`.`related_id`)
LEFT JOIN `oc_product_reward`		AS `t11` ON(`t0`.`product_id` = `t11`.`product_id`)
LEFT JOIN `oc_product_special`		AS `t12` ON(`t0`.`product_id` = `t12`.`product_id`)
LEFT JOIN `oc_product_to_category`	AS `t13` ON(`t0`.`product_id` = `t13`.`product_id`)
LEFT JOIN `oc_product_to_download`	AS `t14` ON(`t0`.`product_id` = `t14`.`product_id`)
LEFT JOIN `oc_product_to_layout`	AS `t15` ON(`t0`.`product_id` = `t15`.`product_id`)
LEFT JOIN `oc_product_to_store`		AS `t16` ON(`t0`.`product_id` = `t16`.`product_id`)
LEFT JOIN `oc_review`			AS `t17` ON(`t0`.`product_id` = `t17`.`product_id`)
LEFT JOIN `oc_coupon_product`		AS `t18` ON(`t0`.`product_id` = `t18`.`product_id`)
LEFT JOIN `oc_url_alias`		AS `t19` ON(CONCAT('product_id=',`t0`.`product_id`) = `t19`.`query`)
WHERE `t0`.`description = '';

DELETE `pd` 
FROM `oc_product_description` AS `pd`
LEFT JOIN `oc_product` AS `p` ON(`pd`.`product_id` = `p`.`product_id`)
WHERE `p`.`product_id` IS NULL;

 

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

Всем спасибо, получилось просто в админке отобрать и через стандартный функционал удалить.

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


21 час назад, kikaridza123 сказал:

Всем спасибо, получилось просто в админке отобрать и через стандартный функционал удалить.

руками постранично или скопом?

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

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


В 04.10.2019 в 20:34, Yesvik сказал:

Одним не обойтись, а двумя можно всё грохнуть )

Это для одного языка

Если языков больше - надо запрос подшаманить

Если описания с пустыми HTML тегами тоже считать пустыми, можно вместо t0.description = '' отбирать по длине описания CHAR_LENGTH(t0.description) < 20


DELETE `t01`,`t02`,`t03`,`t04`,`t05`,`t06`,`t07`,`t08`,`t09`,`t10`,`t11`,`t12`,`t13`,`t14`,`t15`,`t16`,`t17`,`t18`,`t19`
FROM `oc_product_description`		AS `t0`
LEFT JOIN `oc_product`			AS `t01` ON(`t0`.`product_id` = `t01`.`product_id`) 
LEFT JOIN `oc_product_attribute`	AS `t02` ON(`t0`.`product_id` = `t02`.`product_id`)
LEFT JOIN `oc_product_discount`		AS `t03` ON(`t0`.`product_id` = `t03`.`product_id`)
LEFT JOIN `oc_product_filter`		AS `t04` ON(`t0`.`product_id` = `t04`.`product_id`)
LEFT JOIN `oc_product_image`		AS `t05` ON(`t0`.`product_id` = `t05`.`product_id`)
LEFT JOIN `oc_product_option`		AS `t06` ON(`t0`.`product_id` = `t06`.`product_id`)
LEFT JOIN `oc_product_option_value`	AS `t07` ON(`t0`.`product_id` = `t07`.`product_id`)
LEFT JOIN `oc_product_recurring`	AS `t08` ON(`t0`.`product_id` = `t08`.`product_id`)
LEFT JOIN `oc_product_related`		AS `t09` ON(`t0`.`product_id` = `t09`.`product_id`)
LEFT JOIN `oc_product_related`		AS `t10` ON(`t0`.`product_id` = `t10`.`related_id`)
LEFT JOIN `oc_product_reward`		AS `t11` ON(`t0`.`product_id` = `t11`.`product_id`)
LEFT JOIN `oc_product_special`		AS `t12` ON(`t0`.`product_id` = `t12`.`product_id`)
LEFT JOIN `oc_product_to_category`	AS `t13` ON(`t0`.`product_id` = `t13`.`product_id`)
LEFT JOIN `oc_product_to_download`	AS `t14` ON(`t0`.`product_id` = `t14`.`product_id`)
LEFT JOIN `oc_product_to_layout`	AS `t15` ON(`t0`.`product_id` = `t15`.`product_id`)
LEFT JOIN `oc_product_to_store`		AS `t16` ON(`t0`.`product_id` = `t16`.`product_id`)
LEFT JOIN `oc_review`			AS `t17` ON(`t0`.`product_id` = `t17`.`product_id`)
LEFT JOIN `oc_coupon_product`		AS `t18` ON(`t0`.`product_id` = `t18`.`product_id`)
LEFT JOIN `oc_url_alias`		AS `t19` ON(CONCAT('product_id=',`t0`.`product_id`) = `t19`.`query`)
-- WHERE `t0`.`description = '';

DELETE `pd` 
FROM `oc_product_description` AS `pd`
LEFT JOIN `oc_product` AS `p` ON(`pd`.`product_id` = `p`.`product_id`)
-- WHERE `p`.`product_id` IS NULL;

 

я так понимаю это все отношения в которых хранится инфа по товарам?

закоментил инструкцию WHERE, так он вроде должен без разбора убить все записи, или здесь какие-то таблицы не учтены?

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


Это все таблицы которые зачищаются при удалении товаров через админку. При этом могут остаться упоминания о товарах в таблицах oc_cart, oc_order_product, oc_customer_wishlist, oc_return

Всё зависит от того с какой целью делается зачистка...

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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