Изменить коды продуктов Magento в базе данных SQL? - PullRequest
0 голосов
/ 01 сентября 2011

Я только что задал вопрос в SuperUser относительно Microsoft Excel. К счастью, кто-то ответил, но потом я понял, что если я изменю столбец SKU и повторно импортирую файл CSV продукта, он не будет обновлять продукты. Это будет относиться к ним как к новым продуктам, потому что коды SKU не совпадают.

Вопрос был:

Я пытаюсь отредактировать коды продуктов в Excel, чтобы длина каждого кода продукта составляла ровно 8 цифр.

В настоящее время коды продуктов имеют разную длину, например:

12
1222
213212
32
3231
3213131

Вышеприведенные коды должны гласить следующее:

00000012
00001222
00213212
00000032
00003231
03213131

Как вы можете видеть, все коды продуктов теперь имеют длину 8 цифр, для любых кодов продуктов, которые были меньше 8, к ним добавлено правильное число 0.

В Excel это на удивление легко, но возможно ли сделать это прямо в таблицах базы данных?

Ответы [ 3 ]

1 голос
/ 01 сентября 2011

Если вы используете MS SQL Server:

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

Вы просто заполняете группу из 0 в начале, а затем берете 8 самых правых символов.

0 голосов
/ 02 сентября 2011

Для дальнейшего использования, команда SQL, которую я выполнил, чтобы получить эту работу, была:

UPDATE `catalog_product_entity` SET `sku` =  RIGHT(CONCAT('00000000', sku), 8)
0 голосов
/ 01 сентября 2011

Создайте следующий файл PHP, и это должно работать. У меня не было возможности протестировать его, но я постоянно запускаю сценарии обновления mysql с чем-то подобным для magento.

<?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);      

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...