ホームページ > データベース > mysql チュートリアル > MySQL の各 ID で最も高いバージョン ID を持つ行を選択するにはどうすればよいですか?

MySQL の各 ID で最も高いバージョン ID を持つ行を選択するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-29 01:12:10
オリジナル
813 人が閲覧しました

How to Select the Row with the Highest Version ID for Each ID in MySQL?

MySQL: グループによって返される行の選択の制御

MySQL では、各 ID の最も高いバージョンを持つ行を取得できます。複雑なタスク。ただし、この目的を達成するために使用できるアプローチは複数あります。

1 つの方法は、サブクエリを利用することです。

SELECT *
FROM (SELECT * FROM table ORDER BY version_id DESC) t1
GROUP BY t1.id
ログイン後にコピー

このサブクエリは、行をバージョン ID の降順で並べ替えます。それぞれのID。その後、メイン クエリは、並べ替えられた行を ID ごとにグループ化します。この方法では、メモリ内に一時テーブルが作成されますが、(id, version_id) 列にインデックスが存在する場合は効率的です。

別の戦略には、ネストされたクエリが含まれます。

SELECT *
FROM (SELECT id, max(version_id) as version_id FROM table GROUP BY id) t1
INNER JOIN table t2 on t2.id=t1.id and t1.version_id=t2.version_id
ログイン後にコピー

これクエリは、サブクエリ内の各 ID の最大バージョン ID を計算します。次に、メイン クエリは、ID 列と version_id 列を使用してサブクエリを元のテーブルと結合し、最大のバージョン ID を持つ行を取得します。

どちらの方法も、各 ID で最も高いバージョン ID を持つ行を選択するための効果的なソリューションを提供します。 。最も適切なアプローチは、アプリケーションの特定の要件とパフォーマンスに関する考慮事項によって異なります。

以上がMySQL の各 ID で最も高いバージョン ID を持つ行を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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