Удаление неиспользуемых значений атрибутов
Я использую модуль fastsimpleimport для создания собственного импорта. У этого есть функция setDropdownAttributes()
для автоматического создания необходимых значений атрибутов, но она не удаляет неиспользуемые значения. Они все еще отображаются в моем расширенном поиске.
Как я могу искать и удалять неиспользуемые значения атрибутов?
Я думаю, что они хранятся в eav_attribute_option_value
, но я не уверен, как проверить, используются ли они продуктом.
7
2 answers
delete c,b
from eav_attribute a
inner join eav_attribute_option b on a.attribute_id = b.attribute_id
inner join eav_attribute_option_value c on c.`option_id` = b.option_id
LEFT join catalog_product_entity_int pi on b.option_id=pi.value and pi.store_id=0 and b.attribute_id=pi.attribute_id
where entity_id is null
Попробуйте выполнить этот запрос..
0
Author: LuFFy, 2013-03-04 15:22:46
Ответ Луффи технически неверен, так как в нем есть 3 проблемы:
- он удалит значения для
admin
представления хранилища, оставив только некоторый мусор, связанный с представлениями хранилища - он удалит неиспользуемые значения атрибутов всех типов сущностей
- он удалит ВСЕ значения из атрибутов с типом "множественный выбор" независимо от того, назначены они каким-либо продуктам или нет, потому что их параметры хранятся в
catalog_product_entity_varchar
, а неcatalog_product_entity_int
Приведенный ниже запрос адресован эти проблемы:
DELETE o, v
FROM `eav_attribute` a
INNER JOIN `eav_attribute_option` o ON a.`attribute_id` = o.`attribute_id`
INNER JOIN `eav_attribute_option_value` v ON v.`option_id` = o.`option_id`
INNER JOIN `eav_entity_type` t ON t.`entity_type_id` = a.`entity_type_id`
LEFT JOIN `catalog_product_entity_int` pi ON o.`option_id` = pi.`value` AND o.`attribute_id` = pi.`attribute_id`
LEFT JOIN `catalog_product_entity_varchar` pv ON o.`option_id` = pv.`value` AND o.`attribute_id` = pv.`attribute_id`
WHERE pi.`entity_id` IS NULL
AND pv.`entity_id` IS NULL
AND t.`entity_type_code` = "catalog_product"
16
Author: user487772, 2014-03-05 12:41:04