参照https://www.cnblogs.com/CharlieLau/p/6737243.html
一、需求
新加一个Sort 字段,初始值为1,按照parentID分组添加sort值。
根据原数据的parentID,Postime排序,不同parentID值,sort 值从1开始重新增加
二、实现
1 UPDATE co_test AS T1 2 SET Sort = ( 3 SELECT 4 T2.i 5 FROM 6 ( 7 SELECT 8 ( 9 @i := CASE 10 WHEN @parentCode = t1.ParentID THEN 11 @i + 1 12 ELSE 13 1 14 END 15 ) AS i, 16 (@parentCode := t1.ParentID), 17 -- 设置 @parentCode等于上一个 ParentID 18 t1.ID 19 FROM 20 co_test t1, 21 ( 22 SELECT 23 @i := 0 ,@parentCode := '' -- 初始值 24 ) AS t2 25 ORDER BY 26 t1.ParentID, 27 t1.PostTime 28 ) AS T2 29 WHERE 30 T1.ID = T2.ID 31 )
三、运行结果