ホームページ > データベース > mysql チュートリアル > 特定の列に一意の値を持つ最新の 3 つのレコードを選択するにはどうすればよいですか?

特定の列に一意の値を持つ最新の 3 つのレコードを選択するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-02 12:06:18
オリジナル
638 人が閲覧しました

How to Select the 3 Most Recent Records with Unique Values in a Specific Column?

指定された列の異なる値を持つ 3 つの最新レコードを選択する方法

特定のテーブルの最新レコードを選択することは、データベースでの一般的な操作。ただし、特定の列の値を確実に区別して重複を排除する必要がある場合は、より複雑になる可能性があります。このタスクでは、より微妙なアプローチが必要です。

指定されたシナリオでは、ユーザーは、otheridentifier 列の値が異なるテーブルから、最新の 3 つのレコードを選択しようとします。 SELECT * FROM table GROUP BY (otheridentifier) ORDER BY time DESC LIMIT 3 を使用する最初の試行は、SQL ステートメントでの順序付けよりもグループ化の方が優先されるため、望ましい結果を生成できません。

この制限を克服するには、より複雑なクエリが必要です:

SELECT *
FROM `table`
WHERE `id` = (
    SELECT `id`
    FROM `table` AS `alt`
    WHERE `alt`.`otheridentifier` = `table`.`otheridentifier`
    ORDER BY `time` DESC
    LIMIT 1
)
ORDER BY `time` DESC
LIMIT 3
ログイン後にコピー

このクエリは次の実行によって機能します。手順:

  1. サブクエリを使用して、個別の otheridentifier 値ごとに最新のレコードの ID を取得します。
  2. メイン クエリは、対応する ID 値を持つレコードに選択を制限します。 .
  3. 最後に、結果は時間の降順に並べられ、上位 3 つに限定されます。 records.

このアプローチを使用すると、ユーザーは otheridentifier 列に個別の値を持つ最新の 3 つのレコードを効果的に選択し、望ましい結果を得ることができます。

以上が特定の列に一意の値を持つ最新の 3 つのレコードを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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