2011-09-01 6 views
0

Microsoft Excel과 관련하여 수퍼 유저의 question에게 질문했습니다. 고맙게도 누군가 대답했습니다. 그러나 SKU 열을 변경하고 제품 CSV 파일을 다시 가져 오면 제품이 업데이트되지 않습니다. SKU 코드가 일치하지 않아 새로운 제품으로 취급합니다.SQL 데이터베이스에서 Magento 제품 코드를 변경 하시겠습니까?

질문했다 : 나는 각 제품 코드가 정확히 길이가 8 자리 수 있도록 Excel에서 제품 코드를 편집하려고

.

현재 제품 코드는 다른 길이 예를 들어, 다음과 같습니다 다음과 같이

12 
1222 
213212 
32 
3231 
3213131 

위의 코드를 읽어야합니다

00000012 
00001222 
00213212 
00000032 
00003231 
03213131 

모든 제품 코드는 이제 길이가 8 자리입니다 볼 수 있듯이 8 미만인 제품 코드에는 올바른 0이 앞에 붙습니다.

Excel에서는 놀라 울 정도로 간단하지만 데이터베이스 테이블에서 직접 수행 할 수 있습니까?

답변

1

당신은 MS SQL 서버를 사용하는 경우 :

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

당신은 단지 시작에 0의 한 무리를 입력 한 후 8 가장 오른쪽 문자를 취할.

+0

그것의 MySQL은? – dannymcc

+0

MySQL은 또한'RIGHT' 함수를 가지고 있지만, 문자열을 연결하기 위해'CONCAT' (또는 아마도 버전에 따라 ||)을 사용합니다. 내 대답을 편집 할게. –

+0

SKU의 코드는 'catalog_product_entity'라는 테이블에 내가 phpMyAdmin을에서 SQL을 해당 테이블을보고 클릭 할 때 나는 다음 줄 수 : SELECT * catalog_product_entity''FROM 1 내가 다음 하단에 코드를 추가해야 그거? – dannymcc

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

?> 
+0

위의 내용을 changeSKU.php라는 파일에 추가했습니다. URL을 방문하면 빈 화면이로드되고 아무 효과가 없습니다. 단계가 빠졌습니까? – dannymcc

+0

SQL 구문이 잘못되었습니다. 수정 된 버전을 시도하십시오 –

+0

아직 기쁨이 없습니다. 내 서버가 어떻게 든 그것을 막을 수 있습니까? – dannymcc

0

, 나는이 작업을 얻기 위해 실행 한 SQL 명령했다 : 그 차이를 만드는 경우

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