ホームページ > データベース > mysql チュートリアル > 複数の日付に基づいて MySQL 内の最新のレコードを効率的に選択する方法は?

複数の日付に基づいて MySQL 内の最新のレコードを効率的に選択する方法は?

Patricia Arquette
リリース: 2024-12-31 11:01:14
オリジナル
409 人が閲覧しました

How to Efficiently Select the Most Recent Records in MySQL Based on Multiple Dates?

複数の日付に基づいて MySQL テーブルから最新のレコードを選択する

タイムスタンプ、メソッド、ID、と応答の目的は、メソッドと ID の組み合わせごとに最新のレコードを取得することです。

これを達成するには、次の最適化されたクエリを利用できます:

SELECT *
FROM (
    SELECT *,
    if(@last_method = method, 0, 1) AS new_method_group,
    @last_method := method
    FROM rpc_responses
    ORDER BY method, timestamp DESC
) AS t1
WHERE new_method_group = 1;
ログイン後にコピー

このクエリは MySQL 変数を利用して結合の必要性を回避します。次の手順が適用されます。

  1. rpc_responses テーブルの各行に対して、メソッドの新しいグループを割り当てて、個別のメソッド グループを識別します。
  2. 同じメソッドを持つ行は、
  3. 各メソッド グループ内の最新のタイムスタンプ行が、メソッドとタイムスタンプで降順に並べ替えることによって選択されます。
  4. クエリは結果をフィルタリングして、各メソッド グループの最新の行のみを含めます。

このアプローチでは、メソッドの一意の組み合わせごとに最新の応答が効率的に取得されます。結合を必要とせずに ID を取得できるため、最適なパフォーマンスが得られます。

以上が複数の日付に基づいて MySQL 内の最新のレコードを効率的に選択する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート