×

根据数据表排序后,批量更新顺序SQL语句

天外来信 天外来信 发表于2022-01-05 11:05:33 浏览871 评论0

抢沙发发表评论


有表:

cd_delivery_items   交货单子表


欲更新其排序字段:seq  排序依据为 下单数量增序。


交货单ID为:2,测试结果如下:

UPDATE cd_delivery_items a,(SELECT @row := 0) r,(SELECT delivery_items_id,@row:=@row+1 rowid FROM cd_delivery_items WHERE delivery_id=2 ORDER BY quantity_order,delivery_items_id) b
SET a.seq=b.rowid 
WHERE a.delivery_items_id=b.delivery_items_id AND a.delivery_id=2

排序前:

6c21ca1b82c5c56634531a147300039.png

排序后:


image.png


语句:(SELECT @row := 0) r 用于定义自定义变量

子表:(SELECT delivery_items_id,@row:=@row+1 rowid FROM cd_delivery_items WHERE delivery_id=2 ORDER BY quantity_order,delivery_items_id) 用于排序并获取得行号

通过delivery_items_id  更新  seq值


完成

评论列表

访客