4

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

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

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

4

6 回答 6

4

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

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

于 2012-10-03T20:35:52.113 回答
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';
于 2015-12-28T06:49:41.577 回答
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
);
于 2013-10-11T19:26:53.383 回答
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')
于 2012-10-03T15:30:08.070 回答
1

请按照步骤操作。

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

Step2:在 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')

祝你好运...

于 2015-06-17T09:53:32.780 回答
-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 女巫映射号码

于 2013-04-04T04:21:18.673 回答