我将旧数据库转移到VirtueMart(Joomla Component)的新数据库,
在数据库中,有一个表指示媒体(图像)应对应的位置(它们指向的产品),并且媒体按1,2,3,4等进行排序。1是该媒体的主要图像。产品。

当我将旧数据库转移到新数据库时,没有像订购这样的字段。

php - 更改具有相同值的行的顺序-LMLPHP

红色方框错误地显示了顺序(1,1,1,1),
并且绿色块正确显示了它,我需要找出一种使过程自动化的方法,因为数据库中有5000多个条目。

我努力通过PHP自动化流程,但我不知道如果行具有相同的值并更新订单的值,我将如何比较

如果有任何可行的方法,将非常感谢您的帮助。

问候。

最佳答案

您可以为此使用变量:

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;

10-07 16:52