Dalam panduan ini, kami akan membimbing anda melalui pelbagai kaedah dan teknik yang boleh kami gunakan untuk memilih rekod terkini daripada jadual berdasarkan tarikh.
Data Sampel
Untuk tujuan demonstrasi, kami menggunakan pangkalan data sampel Sakila yang tersedia untuk perisa MySQL dan PostgreSQL.
Jangan ragu untuk memuat turun dan mengimport pangkalan data sampel pada pelayan anda. Anda juga boleh menggunakan mana-mana set data lain mengikut kesesuaian.
Contoh 1: PESANAN OLEH
Kaedah paling asas dan paling mudah yang boleh kita gunakan untuk mendapatkan semula rekod terkini mengikut tarikh ialah menggunakan klausa SQL ORDER BY.
Kita boleh memesan rekod dalam susunan menurun berdasarkan nilai tarikh dan kemudian mengehadkan hasilnya kepada hanya satu baris.
Ambil contoh jadual sewa daripada pangkalan data sampel Sakila. Ia mengandungi lajur 'tarikh_sewa' yang menunjukkan tarikh filem disewa.
Kita boleh menggunakan ini untuk menunjukkan cara menggunakan klausa ORDER BY untuk mendapatkan semula rekod terkini daripada jadual.
PILIH *
DARI sewa
PESANAN MENGIKUT tarikh_sewaan DESC
HAD 1 ;
Dalam kes ini, kami menggunakan klausa ORDER BY dan lulus 'rental_date' sebagai lajur sasaran. Kami juga memastikan untuk memberitahu pangkalan data untuk memesan rekod dalam susunan menurun.
Akhir sekali, kami juga mengehadkan bilangan rekod keluaran yang sepatutnya mengembalikan baris terbaharu daripada jadual.
Contoh 2: Menggunakan Fungsi Max()
Adakah anda tahu bahawa kita boleh menggunakan fungsi max() pada nilai tarikh? Ya, kita boleh menggunakan subquery SQL mudah dan fungsi max() pada nilai tarikh untuk mendapatkan semula rekod terkini daripada jadual tertentu.
Pertimbangkan contoh berikut:
PILIH *DARI sewa
WHERE tarikh_sewa = (PILIH MAX(tarikh_sewa) DARI sewa);
Menggunakan subquery mencari tarikh sewa maksimum daripada jadual. Dalam pertanyaan utama, kita harus mengambil rekod dengan 'tarikh_sewa' bersamaan dengan tarikh maksimum.
Contoh 3: Fungsi Tetingkap
Untuk pangkalan data yang menyokong fungsi tetingkap, kita boleh menggunakan fungsi subquery dan row_number() untuk mendapatkan semula rekod terkini daripada jadual seperti berikut:
PILIH *DARI (
PILIH *,
ROW_NUMBER() LEBIH ( PESANAN MENGIKUT tarikh_sewaan DESC) SEBAGAI rn
DARI sewa
) AS subquery
DI MANA rn = 1 ;
Dalam contoh yang diberikan, subkueri memberikan nombor baris pada setiap baris berdasarkan lajur 'rental_date' dalam tertib menurun menggunakan fungsi tetingkap ROW_NUMBER().
Pertanyaan luar kemudian memilih semua lajur daripada subkueri dengan nombor baris ialah 1, dengan berkesan memilih rekod sewaan terkini.
Kesimpulan
Dalam siaran ini, kami meneroka pelbagai kaedah dan teknik yang boleh kami gunakan untuk mengambil rekod terkini berdasarkan tarikh.