我刚刚在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中这很容易 - 但是可以直接在数据库表上进行吗?
答案 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)