Memilih Data Antara Tarikh dengan Baris Kosong dalam MySQL
Mendapatkan semula data antara tarikh yang ditentukan daripada pangkalan data ialah tugas biasa. Walau bagaimanapun, ia boleh menjadi mencabar apabila anda juga perlu memasukkan baris kosong dalam julat tarikh. Dalam artikel ini, kami akan meneroka teknik untuk menangani masalah ini dalam MySQL.
Pertimbangkan jadual bernama "tbl" dengan baris yang mengandungi data dan tarikh:
2009-06-25 75 2009-07-01 100 2009-07-02 120
Pertanyaan biasa untuk dipilih data antara dua tarikh, katakan '2009-06-25' dan '2009-07-01', akan be:
SELECT data FROM tbl WHERE date BETWEEN '2009-06-25' AND '2009-07-01'
Walau bagaimanapun, pertanyaan ini akan terlepas sebarang tarikh kosong dalam julat ini. Untuk memasukkannya, MySQL menawarkan konsep berkuasa yang dikenali sebagai "jadual kalendar."
Jadual kalendar ialah jadual pembantu yang mengandungi satu siri tarikh. Anda boleh menciptanya dengan mudah menggunakan teknik yang ditunjukkan oleh panduan ini:
-- create some infrastructure CREATE TABLE ints (i INTEGER); INSERT INTO ints VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9); -- only works for 100 days, add more ints joins for more SELECT cal.date, tbl.data FROM ( SELECT '2009-06-25' + INTERVAL a.i * 10 + b.i DAY as date FROM ints a JOIN ints b ORDER BY a.i * 10 + b.i ) cal LEFT JOIN tbl ON cal.date = tbl.date WHERE cal.date BETWEEN '2009-06-25' AND '2009-07-01';
Pertanyaan ini akan mengembalikan semua baris dari '2009-06-25' kepada '2009-07-01', termasuk baris kosong dengan nilai sifar untuk 'data'. Ambil perhatian bahawa anda boleh mengoptimumkan teknik ini dengan menggantikan subkueri dengan jadual kalendar yang dikemas kini secara kerap.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Data Antara Tarikh Termasuk Baris Kosong dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!