Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 更改所有简单产品的可见性_Mysql_Sql_Magento - Fatal编程技术网

Mysql 更改所有简单产品的可见性

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

我正试图通过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_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年前提出的问题!