在SQL数据库中更改Magento产品代码?

时间:2011-09-01 12:23:44

标签: mysql sql database magento

我刚刚在SuperUser上询问了有关Microsoft Excel的question。谢天谢地有人回答 - 但后来我意识到,如果我改变SKU列并重新导入产品CSV文件,它将不会更新产品。它会将它们视为新产品,因为SKU代码不匹配。

问题是:

我正在尝试在Excel中编辑产品代码,以便每个产品代码的长度恰好为8位数。

目前产品代码的长度不同,例如:

12
1222
213212
32
3231
3213131

以上代码如下:

00000012
00001222
00213212
00000032
00003231
03213131

如您所见,所有产品代码的长度均为8位数,任何小于8的产品代码都会在其前面添加正确数量的0。

在Excel中这很容易 - 但是可以直接在数据库表上进行吗?

3 个答案:

答案 0 :(得分:1)

如果您正在使用MS SQL Server:

UPDATE
     Products
SET
    product_code = RIGHT(CONCAT('00000000', product_code), 8)

你只需在开头填写一堆0,然后取8个最右边的字符。

答案 1 :(得分:0)

创建以下PHP文件,这应该有效。我没有机会测试它,但是我一直用magento运行mysql更新脚本。

<?php

    // initialize Magento environment
    include_once "app/Mage.php";

    Mage::app()->setCurrentStore(0);        
    $connection = Mage::getSingleton('core/resource')->getConnection('core_write');     
    $sql1 = 'update `catalog_product_entity` set sku =  RIGHT(CONCAT('00000000', sku), 8)';     

    $connection->query($sql1);      

?>

答案 2 :(得分:0)

为了将来参考,我运行的SQL命令是:

UPDATE `catalog_product_entity` SET `sku` =  RIGHT(CONCAT('00000000', sku), 8)