2017-05-24 3 views
0

이전 데이터베이스를 VirtueMart (Joomla 구성 요소), 에 대한 새 데이터베이스로 이전했으며 데이터베이스에는 미디어 (이미지)가 일치해야하는 위치를 나타내는 테이블 (어떤 제품 그들은 지적한다), 미디어는 1,2,3,4 등으로 주문된다. 1은 제품의 주 이미지이다.동일한 값을 가진 행의 순서 변경

이전 데이터베이스를 새 데이터베이스로 이전 할 때 주문과 같은 필드가 없었습니다.

enter image description here

는 빨간색 블록 (1,1,1,1), 올바르게 녹색 블록 표시를, 내가 거기 때문에 과정을 자동화 해주는 방법을 알아낼 필요가 잘못 순서를 표시 데이터베이스의 5000 항목

나는 PHP를 통해 프로세스를 자동화의 문질러서,하지만 일을 어떤 가능한 방법이 있다면 내가 비교하는 것이 어떻게 행의 값이 같을 경우 파악하고 주문

의 값을 업데이트 할 수 없습니다 이것은 도움을 매우 높이 평가할 것입니다.

감사합니다.

+0

어떻게 당신이 당신이 가지고있는 열의 순서를 결정합니까? – squgeim

답변

0

당신은이 목적을 위해 변수를 사용할 수 있습니다 :

set @vpi := -1; 
set @rn := 0; 

update VirtueMart vm 
    set ordering = (@rn := if(@vpi = virtualmart_product_id, @rn + 1, 
           if(@vpi := virtualmart_product_id, 1, 1) 
          ) 
        ) 
    order by virtualmart_product_id, id; 
+0

매력처럼 작동했습니다. 감사합니다. 변수를 사용 해본 적이 없기 때문에 나는 그것에 대해 다소 우스꽝 스럽습니다. 여러분의 해결 감사에서 뭔가 배웠습니다! – alyatek

관련 문제