改变所有简单产品的可见性

时间:2012-10-03 15:26:12

标签: mysql sql magento

我正在尝试通过SQL更改所有SIMPLE产品的可见性。

以下是我选择所有可见性属性值的方法:

SELECT * FROM `catalog_product_entity_int` WHERE attribute_id = 102

catalog_product_entity_int表的entity_id列是产品实体ID,而value应该更改为1所有简单产品。

以下是我选择所有简单产品的方法:

SELECT * FROM `catalog_product_entity` WHERE `type_id`= 'simple'

我不能做的是编写查询,为所有简单产品更新value catalog_product_entity_int列。

6 个答案:

答案 0 :(得分:4)

您是否有任何理由使用直接sql查询编辑EAV属性?

您可以使用集合甚至管理员后端执行相同操作:目录 - 管理产品 - 键入“简单产品” - 全选 - 操作 - 更新属性 - 可见性

答案 1 :(得分:3)

完全正常工作的查询

UPDATE catalog_product_entity_int CPI INNER JOIN catalog_product_entity CP ON CPI.entity_id = CP.entity_id
SET value = 1 
WHERE CPI.attribute_id = 102 AND CP.type_id = 'simple';

答案 2 :(得分:2)

你想使用Magento的一个群众行动。这样仍可以发送适当的事件。

<?php

// Get all simple product ids
$ids = Mage::getResourceModel('catalog/product_collection')
    ->addAttributeToFilter('type_id', array('eq' => Mage_Catalog_Model_Product_Type::TYPE_SIMPLE))
    ->getAllIds();

// Update their visibility
Mage::getSingleton('catalog/product_action')->updateAttributes(
    $ids,
    array("visibility" => Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE),
    Mage_Core_Model_App::ADMIN_STORE_ID
);

答案 3 :(得分:1)

因为我的问题,这个简单的代码将适用于你。

我假设这两个表之间的关系是-entity_id

update catalog_product_entity_int set value =1 
where attribute_id = 102 and  entity_id=
(select entity_id from `catalog_product_entity` where `type_id`= 'simple')

答案 4 :(得分:1)

请按照以下步骤操作。

步骤1:在通过查询进行任何更改之前,您需要对受影响的表或数据库进行备份。在这种情况下,请使用backup(catalog_product_entity_int)表。

步骤2:在eav_attribute表中搜索确切的可见性属性id。

SELECT * FROM eav_attribute WHERE attribute_code LIKE 'visibility')。然后将该值保存在以下查询...

第3步:运行此查询

UPDATE catalog_product_entity_int SET VALUE =2 WHERE attribute_id = 102 AND entity_id IN (SELECT entity_id FROM catalog_product_entity WHERE type_id= 'simple')

祝你好运......

答案 5 :(得分:-1)

我认为这个sql命令究竟是:

UPDATE catalog_product_entity_int SET VALUE =2  
WHERE attribute_id = 93 AND  
      entity_id IN (SELECT entity_id FROM catalog_product_entity 
                    WHERE type_id= 'simple')

注意:检查您的attribute_id女巫映射号码