有表:
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
排序前:
排序后:
语句:(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值
完成