2017-05-24 20 views
0

古いデータベースをVirtueMart(Joomlaコンポーネント)の新しいデータベース( )に移しました。データベースには、メディア(イメージ)が対応する場所を示すテーブルがあります彼ら)は、点、及びメディアは、製品のメイン画像である等1、1,2,3,4によって順序付けされます。私は順序のような何のフィールドがありませんでした新しいものに古いデータベースを移す同じ値を持つ行の順序を変更

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

関連する問題