1

現在、このクエリを実行しています:

SELECT t.videolink, t.userid, t.tag
    FROM (SELECT * FROM tagstrend ORDER BY timestamp DESC) AS t
        WHERE t.timestamp > ?
        GROUP BY t.tag
        ORDER BY SUM(t.tagcount) DESC
        LIMIT ?, 20;

私がしているのは、残りのクエリを実行する前に、選択しているテーブルの順序を逆にすることです。これは、「GROUP BY」を使用するときに、データベースの最新の行である一番上の結果を取得する必要があるためです。 .

ただし、これを行うと、クエリを実行する前にテーブルの順序を逆にする必要があるため、クエリのパフォーマンス/速度が低下します。

私の質問は、テーブルのデフォルトの順序を逆に設定する方法はありますか? 私は常にこのテーブルから逆の順序で SELECT するからです。

データベースの最新の行でグループ化する方法を誰かが知らない限り?

4

1 に答える 1

2

「ただし、これを行うと、クエリを実行する前にテーブルの順序を逆にする必要があるため、クエリのパフォーマンス/速度が低下します。」

私はそれが本当だとは思わない。Order By .... ASC と Order By .... DESC のパフォーマンスは同じでなければなりません。テストして見てください。

于 2012-10-27T04:20:21.350 に答える