Rumah > pangkalan data > tutorial mysql > Bagaimana untuk mendapatkan semula N Baris Terakhir dalam Susunan Menaik daripada MySQL Walaupun Manipulasi Data?

Bagaimana untuk mendapatkan semula N Baris Terakhir dalam Susunan Menaik daripada MySQL Walaupun Manipulasi Data?

Susan Sarandon
Lepaskan: 2024-12-27 09:15:10
asal
544 orang telah melayarinya

How to Retrieve the Last N Rows in Ascending Order from MySQL Despite Data Manipulation?

Mendapatkan semula N Baris Terakhir dalam MySQL dalam Susunan Menaik dengan Data Dimanipulasi

Memilih baris N terakhir daripada pangkalan data MySQL ialah operasi biasa. Walau bagaimanapun, menentukan susunan baris yang harus dikembalikan boleh menjadi rumit apabila data sedang dimanipulasi.

Pertimbangkan senario berikut: anda ingin memilih 50 baris terakhir daripada jadual bernama "jadual" berdasarkan lajur "id", yang merupakan kunci utama. Mengisih baris dalam tertib menaik mengikut "id" ialah keperluan penting.

Percubaan Gagal

Pertanyaan berikut cuba mengisih keputusan dalam tertib menurun, tetapi gagal untuk mengembalikan 50 baris terakhir:

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

Sebagai alternatif, pertanyaan ini cuba kenal pasti 50 baris terakhir dengan membandingkan nilai "id" kepada nilai maksimum "id" tolak 50, tetapi ia tidak berfungsi jika baris telah dipadamkan:

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

Penyelesaian

Untuk menangani isu ini, anda boleh menggunakan subquery untuk mencapai yang diingini hasil:

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

Pertanyaan ini mula-mula melaksanakan subkueri, yang memilih 50 baris terakhir daripada "jadual" dan menyusunnya dalam tertib menurun. Subkueri yang terhasil kemudiannya dialiaskan sebagai "sub."

Akhir sekali, pertanyaan luar memilih semua baris daripada subkueri "sub" dan menyusunnya dalam tertib menaik. Ini dengan berkesan mendapatkan semula 50 baris terakhir daripada jadual, memastikan baris itu diisih dalam tertib menaik berdasarkan lajur "id" dan mengendalikan kes di mana baris mungkin telah dimanipulasi.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan semula N Baris Terakhir dalam Susunan Menaik daripada MySQL Walaupun Manipulasi Data?. 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