MySQL使用用户变量更新分组排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL使用用户变量更新分组排序相关的知识,希望对你有一定的参考价值。

第一个需求是根据A字段进行排序,排序结果更新到B字段

简单搜索之后,很快得到答案

http://dev.mysql.com/doc/refman/5.7/en/update.html 

SET @a=0;
UPDATE tableName SET a = ( SELECT @a := @a +1 )  ORDER BY b ASC

 

第二个需求是根据A字段分组,对B字段排序,排序结果更新到C字段

SET @C = 0;SET @A = 0;
UPDATE tableName
SET C = 
(
SELECT 
CASE WHEN @A = A
THEN @C := @C + 1
ELSE
     (@C := @C + 1 AND @A := A)
ENDORDER BY A,B

 

结果是正确了,但是不太明白为什么……

To be continue

以上是关于MySQL使用用户变量更新分组排序的主要内容,如果未能解决你的问题,请参考以下文章

mysql:update select groupby orderby(分组排序后更新第一条数据)

MySQL高级分组排序

mysql实现分组排序

MySQL核心面试技术(持续更新)

具有多个分组或排序的mysql查询优化

mysql排序