mysql中有时候需要对查询的结果排序,比如根据成绩获取排名信息等,需要增加一个自增的列,也就是排名信息

1 set @rank=0;
2 SELECT a.*, @rank:= @rank+1 as sortid FROM a;

如果不支持写两条sql,可以用以下写法合成一条sql

SELECT
tmp.*,@rank :=@rank + 1 AS rank
FROM
(
(SELECT * FROM a) tmp,
(SELECT @rank := 0) b
)
05-16 02:09