有一个表,结构及数据如下
姓名    语文     数学   英语
张三     89       45     87
李四     78       88     89
王二     54       54     67
现在要求救出每个学生的总成分,并按总分生成名次字段,从高到低排列

解决方案 »

  1.   

    set @a:=0;
    select  id, a+b+c, @a:=@a+1
    from table_name
    order by a+b+c desc;
      

  2.   

    加了,变成ASC排名也是错的呀,我要求得分高的排第一,怎么解决,谢谢了
      

  3.   

    已经解决了,感谢四楼的朋友提供思路set @a:=(SELECT COUNT(NAME) FROM t_name)+1;
    SELECT *,
    SUM(yuwen+suxue+english) as zongfen,
    @a:=@a-1 as mingci
    from t_name
    GROUP BY `name`
    ORDER BY zongfen DESC
      

  4.   

    有新问题了,上面的代码在实际运行中有以下提示:
    我在PHP页中用
    $qrs=(set @a:=(SELECT COUNT(NAME) FROM t_name)+1;
    SELECT *,
    SUM(yuwen+suxue+english) as zongfen,
    @a:=@a-1 as mingci
    from t_name
    GROUP BY `name`
    ORDER BY zongfen DESC);
    /*上面括号中为9楼的查询语句,在mysql中测试正常,但执行下面语句时出现错误提示*/
    $rcdset=mysql_query($qrs);
    /*以下是错误提示*/
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT @a:=@a-1 as mingci, p8_form_content_63.id, p8_form_content_63.uid, p8_' at line 1这是怎么回事呀,程序应当没有错呀,请高手们指教