日付付き MySQL テーブルから最新のレコードを取得する
メソッドと ID の既存のすべての組み合わせに対する最新の応答を選択するには次の構造を持つ MySQL テーブル:
Table: rpc_responses timestamp (date) method (varchar) id (varchar) response (mediumtext) PRIMARY KEY(timestamp,method,id)
以下を考慮してください。手順:
グループを選択するためのサブクエリの作成:
SELECT *, if(@last_method=method,0,1) as new_method_group, @last_method:=method AS t1 FROM rpc_responses ORDER BY method,timestamp DESC
各グループの最初の行のフィルター:
WHERE new_method_group=1
この条件により、メソッドとタイムスタンプの各組み合わせの最新の行のみが確実に保存されます。 selected.
必要な列を選択します:
SELECT timestamp, method, id, response FROM t1
このクエリは、必要な結果セットを返します。メソッドと ID の既存のすべての組み合わせに対する最新の応答が含まれます。結合の使用を回避し、MySQL 変数を利用して異なるメソッド グループ間の遷移を追跡するため、効率的です。
以上が日付の付いた MySQL テーブルから最新のレコードを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。