MySQL中,手写rank示例:
先创建一个tablle,并放入一些数据,如:
age升序排列(age相同时,排名继续增加),示例:
注:这里的(SELECT @curRank := 0) q 的作用是:在同一个select语句中给变量curRank赋初始值。效果等
同于,两个sql语句,第一个先赋值,第二个再select:
age降序排列(age相同时,排名继续增加),示例:
age升序排列(age相同时,排名相同;但是到下一个age不同时,排名不跳级,继续+1),示例一(case...when...then):
age升序排列(age相同时,排名相同;但是到下一个age不同时,排名不跳级,继续+1),示例二if(a,b,c):
age升序排列(age相同时,排名相同;但是到下一个age不同时,排名跳级+n),示例:
注:如果嫌查出来的列太多了,可以再对此结果进行select,如: