Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann man diesen PHP-Mysql-Code verbessern?

Distinct ist langsamer als Group By . Sie können so vorgehen, ohne Group By zu verwenden und Distinct zusammen und das könnte das sein, was Sie erreichen möchten.

SELECT regd, Roll_no, Name_of_Student, Name_of_exam,
       TOTALSCORE, Rank 
FROM 
(
  SELECT t.*, IF(@p = TOTALSCORE, @n, @n := @n + 1) AS Rank, @p := TOTALSCORE 
    FROM
  (
    SELECT regd, Roll_no, Name_of_Student, Name_of_exam, 
            SUM(Mark_score) TOTALSCORE
    FROM cixexam, (SELECT @n := 0, @p := 0) n 
     WHERE (Name_of_exam='First Terminal Exam' OR Name_of_exam='First Term Test')
     GROUP BY regd 
     ORDER BY TOTALSCORE DESC
  ) t
) r