我将 VirtueMart(Joomla 组件)的旧数据库转移到新数据库, 在数据库中,有一个表指示媒体(图像)应对应于何处(它们指向哪个产品),并且媒体按 1,2,3,4 等排序。1 是该产品的主图像产品。
当我将旧数据库转移到新数据库时,没有像排序这样的字段。
红色 block 显示的顺序不正确(1,1,1,1), 并且绿色 block 正确显示它,我需要找到一种方法来自动化该过程,因为数据库中有超过 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;
关于php - 更改具有相同值的行的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44155747/