Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Kembali N Baris Terakhir dari MySQL dalam Tertib Menaik dengan Cekap?

Bagaimana untuk Mendapatkan Kembali N Baris Terakhir dari MySQL dalam Tertib Menaik dengan Cekap?

Patricia Arquette
Lepaskan: 2024-12-13 16:53:15
asal
986 orang telah melayarinya

How to Efficiently Retrieve the Last N Rows from MySQL in Ascending Order?

Mendapatkan semula N Baris Terakhir daripada MySQL dalam Susunan Menaik

Mendapatkan semula N baris terakhir daripada pangkalan data MySQL boleh menjadi tugas biasa, terutamanya apabila bekerja dengan meja besar. Walau bagaimanapun, menyusun keputusan dalam tertib menaik sambil memastikan integriti data, boleh menjadi satu cabaran.

Pertimbangkan pertanyaan berikut:

SELECT 
    *
FROM
    `table`
ORDER BY id DESC
LIMIT 50;
Salin selepas log masuk

Pada pandangan pertama, pertanyaan ini nampaknya memilih 50 baris terakhir. Walau bagaimanapun, ia berbuat demikian dalam tertib menurun (daripada terbesar kepada terkecil), yang melanggar keperluan untuk tertib menaik.

Pendekatan lain ialah:

SELECT 
    *
FROM
    `table`
WHERE
    id > ((SELECT 
            MAX(id)
        FROM
            chat) - 50)
ORDER BY id ASC;
Salin selepas log masuk

Pertanyaan ini bertujuan untuk mendapatkan semula baris dengan ID lebih besar daripada ID maksimum tolak 50. Walau bagaimanapun, ia juga gagal kerana data tertakluk kepada manipulasi dan baris boleh dipadamkan, berpotensi menjejaskan keputusan.

Penyelesaian: Pendekatan Subkueri

Untuk menangani cabaran ini, subkueri boleh digunakan:

SELECT * FROM
(
 SELECT * FROM table ORDER BY id DESC LIMIT 50
) AS sub
ORDER BY id ASC;
Salin selepas log masuk

Pertanyaan ini melibatkan subquery yang memilih 50 baris terakhir dalam susunan menurun. Hasil subkueri ini kemudiannya disimpan dalam jadual sementara yang dipanggil "sub." Akhir sekali, pertanyaan luar memilih semua baris daripada "sub" dan menyusunnya dalam tertib menaik.

Pendekatan ini memastikan bahawa 50 baris terakhir dipilih, walaupun jadual dimanipulasi dan hasilnya dibentangkan dalam menaik pesanan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kembali N Baris Terakhir dari MySQL dalam Tertib Menaik dengan Cekap?. 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