Bagaimana untuk Memesan Data Sebelum Pengumpulan dalam MySQL?

Linda Hamilton
Lepaskan: 2024-11-11 18:29:02
asal
1000 orang telah melayarinya

How to Order Data Before Grouping in MySQL?

Pesanan MySQL sebelum Kumpulan mengikut

Apabila mendapatkan semula data daripada pangkalan data menggunakan MySQL, selalunya wajar untuk mengisih keputusan dalam susunan tertentu . Walau bagaimanapun, apabila menggunakan klausa GROUP BY untuk mengumpulkan data, keputusan biasanya dipesan selepas ia dikumpulkan, yang mungkin tidak menghasilkan hasil yang diingini.

Dalam contoh yang disediakan, pertanyaan bertujuan untuk mendapatkan semula siaran terkini untuk setiap pengarang dan kumpulan hasil, tetapi klausa GROUP BY menyebabkan siaran dipesan selepas dikumpulkan, menghasilkan tidak betul keputusan.

Untuk menyelesaikan isu ini, pendekatan alternatif ialah menggunakan subkueri untuk menentukan tarikh siaran terkini bagi setiap pengarang sebelum melaksanakan operasi kumpulan. Ini boleh dicapai menggunakan pertanyaan yang diubah suai berikut:

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;
Salin selepas log masuk

Pertanyaan ini mula-mula menggunakan subkueri untuk mengira tarikh siaran terkini bagi setiap pengarang dan menyimpannya dalam jadual sementara t. Ia kemudian bergabung dengan wp_posts dengan t untuk memilih baris yang sepadan dengan tarikh siaran terkini dan mengumpulkan hasil oleh pengarang. Akhir sekali, keputusan disusun mengikut tertib menurun mengikut tarikh siaran untuk mendapatkan catatan terkini bagi setiap pengarang.

Dengan menggunakan pendekatan ini, anda boleh memastikan bahawa siaran dipesan sebelum ia dikumpulkan, memberikan hasil yang diingini tanpa menjejaskan integriti operasi kumpulan.

Atas ialah kandungan terperinci Bagaimana untuk Memesan Data Sebelum Pengumpulan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan