Löschen Sie ungenutzte Attributwerte
-
16-10-2019 - |
Frage
Ich benutze das FastsimpleMport Modul zum Erstellen meines benutzerdefinierten Imports. Das hat a setDropdownAttributes()
Funktion zum automatischen Erstellen der erforderlichen Attributwerte, entzieht jedoch nicht genutzte Werte. Diese tauchen immer noch in meiner fortgeschrittenen Suche auf.
Wie kann ich nicht verwendete Attributwerte suchen und entfernen?
Ich denke, sie sind in gespeicherten eav_attribute_option_value
Ich bin mir jedoch nicht sicher, wie ich prüfen soll, ob sie von einem Produkt verwendet werden.
Lösung
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
Probieren Sie diese Abfrage aus ..
Andere Tipps
Die Antwort von Ruffy ist technisch falsch, da sie drei Probleme hat:
- es entfernen Werte für
admin
STADE-Ansicht nur einige Store-Views-verwandte Müll lassen - Es wird ungenutzte Werte von Attributen aller Entitätstypen beseitigt
- es wird entfernen ALLE Werte aus Attributen mit "multiple select" -Typen, unabhängig davon, ob sie Produkten zugewiesen sind oder nicht, weil diese Optionen in gespeichert werden
catalog_product_entity_varchar
und nichtcatalog_product_entity_int
Die folgende Abfrage befasst sich mit diesen Problemen:
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"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange