ホームページ  >  記事  >  データベース  >  MySQL でグループ化する前にデータを並べ替えるにはどうすればよいですか?

MySQL でグループ化する前にデータを並べ替えるにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-11 18:29:021005ブラウズ

How to Order Data Before Grouping in MySQL?

グループ化の前の MySQL の順序

MySQL を使用してデータベースからデータを取得する場合、多くの場合、結果を特定の順序で並べ替えることが望ましいです。 。ただし、GROUP BY 句を使用してデータをグループ化する場合、通常、結果はグループ化された後に並べ替えられるため、望ましい結果が得られない可能性があります。

この例では、クエリは最新の投稿を取得することを目的としています。著者ごとに結果をグループ化しますが、GROUP BY 句により、グループ化後に投稿が並べ替えられ、不正確な結果が得られます。

この問題を解決するには、別のアプローチとして、サブクエリを使用して、グループ操作を実行する前に各著者の最新の投稿日を確認します。これは、次の変更されたクエリを使用して実現できます。

SELECT
    wp_posts.*
FROM
    wp_posts
    JOIN (
        SELECT
            g.post_author,
            MAX(g.post_date) AS post_date
        FROM wp_posts AS g
        WHERE
            g.post_status = 'publish'
            AND g.post_type = 'post'
        GROUP BY g.post_author
    ) AS t
    ON wp_posts.post_author = t.post_author AND wp_posts.post_date = t.post_date
ORDER BY wp_posts.post_date DESC;

このクエリは、最初にサブクエリを使用して各著者の最新の投稿日を計算し、それを一時テーブル t に保存します。次に、wp_posts を t と結合して、最新の投稿日付に一致する行を選択し、結果を作成者ごとにグループ化します。最後に、結果は投稿日の降順に並べ替えられ、各著者の最新の投稿が取得されます。

このアプローチを使用すると、グループ化される前に投稿が確実に並べ替えられ、望ましい結果が得られます。グループ化操作の整合性を損なうことなく。

以上がMySQL でグループ化する前にデータを並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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