SELECT TOP 1 NAME FROM STUDENTS
ORDER BY C1+C2+C3 DESC

解决方案 »

  1.   

    select *,c1+c2+c3 as num from students order by num desc limit 1
      

  2.   

    现在数据库中有130万学生资料
    以前所过一个索引c,包括c1,c2,c3,用max(c1+c2+c3)很快,但是使用order by c1+c2+c3 desc limit 1耗时4分钟,太慢了有其它办法吗?或者用什么样的索引可以解决order by c1+c2+c3 desc limit 1的速度问题?
      

  3.   

    select *,max(c1+c2+c3) from students group by id;
      

  4.   

    select *,from students, (select max(c1+c2+c3) as c from students) max where (c1+c2+c3) =  
     max.c
      

  5.   

    SELECT * FROM sutdents
    WHERE c1+c2+c3 IN(SELECT max(c1+c2+c3) as c from students) 不用=而用IN怕总分有重复,造成1对多形成错误或者SELECT * FROM student AS a
    WHERE 1>(SELECT COUNT(1) FROM student AS b WHERE b.c1+b.c2+b.c3>a.c1+c2+c3)或者SELECT a.* FROM students AS a
    INNER JOIN (SELECT MAX(c2+c1+c3) AS bMax FROM students ) AS b
    ON bMax=(a.c1+a.c2+a.c3) ..方法很多,不一一写了,不知道哪个能在MYSQL下用,楼主试试吧