ホームページ >データベース >mysql チュートリアル >日付の付いた MySQL テーブルから最新のレコードを効率的に取得するにはどうすればよいですか?

日付の付いた MySQL テーブルから最新のレコードを効率的に取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-24 09:43:14184ブラウズ

How to Efficiently Retrieve the Most Recent Records from a Dated MySQL Table?

日付付き MySQL テーブルから最新のレコードを取得する

メソッドと ID の既存のすべての組み合わせに対する最新の応答を選択するには次の構造を持つ MySQL テーブル:

Table: rpc_responses

timestamp   (date)
method      (varchar)
id          (varchar)
response    (mediumtext)

PRIMARY KEY(timestamp,method,id)

以下を考慮してください。手順:

  1. グループを選択するためのサブクエリの作成:

    SELECT *,
    if(@last_method=method,0,1) as new_method_group,
    @last_method:=method AS t1
    FROM rpc_responses
    ORDER BY method,timestamp DESC
    • @last_method 変数は空の文字列に初期化されます。
    • if() ステートメントは new_method_group 列を作成しますこれは、同じメソッド値を持つ行の新しいグループの開始を示します。
  2. 各グループの最初の行のフィルター:

    WHERE new_method_group=1

    この条件により、メソッドとタイムスタンプの各組み合わせの最新の行のみが確実に保存されます。 selected.

  3. 必要な列を選択します:

    SELECT timestamp, method, id, response
    FROM t1

このクエリは、必要な結果セットを返します。メソッドと ID の既存のすべての組み合わせに対する最新の応答が含まれます。結合の使用を回避し、MySQL 変数を利用して異なるメソッド グループ間の遷移を追跡するため、効率的です。

以上が日付の付いた MySQL テーブルから最新のレコードを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。