Mysql 更改所有简单产品的可见性
我正试图通过SQL改变所有SIMPLE only产品的可见性 以下是如何选择“可见性”属性的所有值:Mysql 更改所有简单产品的可见性,mysql,sql,magento,Mysql,Sql,Magento,我正试图通过SQL改变所有SIMPLE only产品的可见性 以下是如何选择“可见性”属性的所有值: SELECT * FROM `catalog_product_entity_int` WHERE attribute_id = 102 catalog_product_entity_int表的entity_id列是产品实体id,所有简单产品的值都应更改为1 以下是我选择所有简单产品的方式: SELECT * FROM `catalog_product_entity` WHERE `type_i
SELECT * FROM `catalog_product_entity_int` WHERE attribute_id = 102
catalog_product_entity_int表的entity_id列是产品实体id,所有简单产品的值都应更改为1
以下是我选择所有简单产品的方式:
SELECT * FROM `catalog_product_entity` WHERE `type_id`= 'simple'
我不能做的是,编写一个查询,为所有简单的产品更新catalog\u product\u entity\u int的值列。当我得到你的问题时,这个简单的代码将为你工作 我假设这两个表之间的关系是-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')
您有任何理由使用直接sql查询编辑EAV属性吗
您可以使用集合甚至在管理后端执行同样的操作:catalog-manage products-type Simple product-Select all-Actions-Update Attributes-Visibility我认为这个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')
注意:如果要使用Magento的一个体量动作,请检查属性\u id开关映射的编号。这样,正确的事件仍然被调度
<?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
);
请按照步骤操作 步骤1:在通过查询进行任何更改之前,您需要对受影响的表或数据库进行备份。在这种情况下,使用备份目录\产品\实体\ int表 步骤2:在eav_属性表中搜索准确的可见性属性id 从eav_属性中选择*,其中属性_代码类似于“可见性”。然后在下面的查询中保留该值 步骤3:运行此查询 更新catalog_product_entity_int SET VALUE=2,其中属性_id=102,并从catalog_product_entity中选择实体_id,其中类型_id='simple' 祝你好运…正是工作查询
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';
问题在于类型_id位于不同的表中:这两张表之间有某种联系吗?这两张表之间一定有某种联系。。否则我们就做不到。。我是说有什么关系吗?非常感谢,这是应该的。除了我添加了任何。。。实体id=从“目录产品…”中选择的任何实体id,因为有多个实体id。选择将返回多个实体id。这应该得到纠正。这对我来说是一个完美的解决方案,感谢您如此简单的赞扬,因为我似乎不是SQL专家,我无法正确回答3年前提出的问题!