更改具有相同值的行的顺序
Alter order for rows with same values
我为 VirtueMart(Joomla 组件)将一个旧数据库转移到一个新数据库,
并且在数据库中有一个 table 指示媒体(图像)应该对应的位置(它们指向哪个产品),并且媒体按 1,2,3,4 等排序。1 是产品的主图片。
当我将旧数据库转移到新数据库时,没有像排序那样的字段。
红色块显示顺序不正确(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;
我为 VirtueMart(Joomla 组件)将一个旧数据库转移到一个新数据库, 并且在数据库中有一个 table 指示媒体(图像)应该对应的位置(它们指向哪个产品),并且媒体按 1,2,3,4 等排序。1 是产品的主图片。
当我将旧数据库转移到新数据库时,没有像排序那样的字段。
红色块显示顺序不正确(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;