sql >> データベース >  >> RDS >> Mysql

このphpmysqlコードを改善する方法は?

    Distinct Group Byより遅い 。 Group Byを使用せずにこのようにすることができます およびDistinct 一緒に、これはあなたが達成したいことかもしれません。

    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
    


    1. MySQLでCASEステートメントを使用する方法

    2. 動的フィールド名でトリガー

    3. MySQLで欠落しているインデックスを見つける方法は?

    4. 楽観的同時実行性:IsConcurrencyTokenおよびRowVersion