Mysql Magento SQL-将所有产品名称复制到“简短描述”属性

Mysql Magento SQL-将所有产品名称复制到“简短描述”属性,mysql,magento,Mysql,Magento,我需要将所有Magento的产品名称复制到short\u description属性。我只需要将产品名称插入正确的表中,但我不确定如何插入 以下是我用来获取所有产品名称的SQL: SELECT `value` AS product_name FROM `mage_catalog_product_entity_varchar` WHERE entity_type_id = (SELECT entity_type_id FROM mage_eav_entity_type WHERE entity_t

我需要将所有Magento的产品名称复制到
short\u description
属性。我只需要将产品名称插入正确的表中,但我不确定如何插入

以下是我用来获取所有产品名称的SQL:

SELECT `value` AS product_name
FROM `mage_catalog_product_entity_varchar`
WHERE entity_type_id = (SELECT entity_type_id FROM mage_eav_entity_type WHERE entity_type_code = 'catalog_product') 
AND attribute_id = (SELECT attribute_id FROM mage_eav_attribute WHERE attribute_code = 'name' AND entity_type_id = (SELECT entity_type_id FROM mage_eav_entity_type WHERE entity_type_code = 'catalog_product'))
简短的描述属性id为506:

SELECT * FROM `mage_eav_attribute` WHERE `attribute_id` = 506

这不是magento需要使用的方式,使用集合并编写一个脚本来实现这一点,我已经草草写下了下面的代码,我不确定这是否可行,但这是我想到的最好的方法

<?php include "app/Mage.php";

     Mage::app();
     $collection = Mage::getModel('catalog/product')->getCollection()
               ->addAttributeToSelect('*'); // select all attributes

     // we iterate through the list of products to get attribute values 
         foreach ($collection as $_product) {
           $product = Mage::getModel('catalog/product')->load($_product->getId());
           $product->setShortDescription($product->getName());
           $product->save();
        }  

?>

我最终只是修改了Munjal的伟大答案,以小批量完成,以避免服务器超时:

<?php include "app/Mage.php";

     Mage::app();
     $collection = Mage::getModel('catalog/product')->getCollection()
               ->addAttributeToSelect('*') // select all attributes
               ->addAttributeToFilter('entity_id', array(
                    'from' => 1,
                    'to' => 200
                ));

     // we iterate through the list of products to get attribute values 
         foreach ($collection as $_product) {
           $product = Mage::getModel('catalog/product')->load($_product->getId());
           $product->setShortDescription($product->getName());
           $product->save();
        }  

?>


是否要将PeroProduct名称添加为
简短描述
?永远不要向magento db启动SQL,这是一条经验法则,这是非常诱人且不好的做法。当你用SQL棒戳magento EAV时,它经常会带着一个大而尖的损坏数据库俱乐部返回你。使用集合或数据流导出/导入。无论如何比sql简单得多-感谢您的提示。。附言:你在回答中忘了几个“;”)厕所。请用工作代码更新答案,这将非常有帮助。写答案时没有ide…我说得太快了。。服务器一直超时。。尝试在magento、php.ini和.htaccess中更新服务器超时设置,但没有成功。。有什么想法吗?