Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Kembali N Baris Terakhir dalam Susunan Menaik daripada Jadual MySQL?

Bagaimana untuk Mendapatkan Kembali N Baris Terakhir dalam Susunan Menaik daripada Jadual MySQL?

Mary-Kate Olsen
Lepaskan: 2024-12-04 09:20:13
asal
962 orang telah melayarinya

How to Reliably Retrieve the Last N Rows in Ascending Order from a MySQL Table?

Dapatkan N Baris Terakhir dalam Susunan Menaik daripada Jadual MySQL Boleh Dimanipulasi

Apabila mendapatkan semula N baris terakhir daripada pangkalan data MySQL yang berpotensi dimanipulasi, memastikan kedua-dua kronologi ( menurun) dan susunan menaik boleh mencabar. Artikel ini menangani isu ini, menyediakan penyelesaian menggunakan subkueri.

Pertanyaan berikut bertujuan untuk memilih 50 baris terakhir daripada jadual yang disusun mengikut id kunci utama dalam tertib menurun:

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

Walau bagaimanapun, pendekatan ini mempunyai kelemahan: jika mana-mana baris dipadamkan, baris berikutnya tidak akan diambil dengan tepat dalam tertib menaik.

Begitu juga, pertanyaan di bawah gagal menangani isu manipulasi:

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

Penyelesaian menggunakan Subquery:

Untuk mengatasinya had, 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 memilih 50 baris terakhir daripada jadual dalam tertib menurun menggunakan subkueri, dan kemudian menyusun semula baris itu dalam tertib menaik sebelum mendapatkan semula hasil akhir.

Pendekatan ini membolehkan pengambilan semula N baris terakhir yang tepat, tanpa mengira sebarang perubahan atau pemadaman yang dibuat pada jadual, memastikan data dipaparkan dalam urutan kronologi yang dikehendaki.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kembali N Baris Terakhir dalam Susunan Menaik daripada Jadual 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