备注:工作中遇到的问题解决后做个记录
--------------------排名的动作是最后执行的 ----------------------------------------------------
– select a.s_id,a.s_score,a.c_id,@i:=@i+1 as 排名 from Score a,(select @i:=0)s where a.c_id=‘01’ #
– ORDER BY a.s_score DESC;
– select a.s_id,a.s_score,a.c_id,@i:=@i+1 as 排名 from (select * from Score where c_id=‘01’ order by s_score DESC)a,
– (select @i:=0)s;
– 上面两种结果是一样的,都是先按照 s_score 降序排列之后 再进行标记,所以@用户定义变量的作用是在其他所有sql语句执行完之后再执行的 –
– select a.s_id,a.s_score,a.c_id from Score a,(select @i:=0)s where a.c_id=‘01’ #
– ORDER BY a.s_score DESC;
#上面两个动作是一样的,只是后面多了一个排名的操作 –
– select a.s_id,a.s_score,a.c_id,@i:=@i+1 as 排名 from Score a,(select @i:=0)s where a.c_id=‘01’; # 这个只是单纯的排名,并且 排名是在最后列出的 ----
#所有的排名操作都是在系统先执行完后再进行的 ----