グループ化の前の 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 サイトの他の関連記事を参照してください。