首页 > 技术文章 > mysql分组排序加序号

zhuanjiao 2019-10-16 11:39 原文

参照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 )

 


三、运行结果

  

 

推荐阅读