Cara Mengisi Jurang Data dalam Pertanyaan MySQL Anda
Soalan ini meneroka isu biasa dalam MySQL, di mana jurang data boleh berlaku apabila membuat pertanyaan antara tarikh tertentu. Pertanyaan sedia ada pengguna mendapatkan semula metrik berasaskan tarikh, tetapi ia tidak termasuk data untuk tarikh yang tiada.
Mengisi Jurang Data menggunakan Sumber Row Dummy
Untuk mengisi jurang data , penyelesaiannya melibatkan mencipta jadual pembantu bernama "tarikh." Jadual ini mengandungi semua tarikh dari julat mula hingga akhir yang dikehendaki. Kemudian, LEFT JOIN dilakukan antara jadual tarikh dan jadual mesej.
Berikut ialah Pertanyaan Diubah Suai:
SELECT d.dt AS date, COUNT(*) AS total, SUM(attitude = 'positive') AS positive, SUM(attitude = 'neutral') AS neutral, SUM(attitude = 'negative') AS negative FROM dates d LEFT JOIN messages m ON m.posted_at >= d.dt AND m.posted_at < d.dt + INTERVAL 1 DAYS AND spam = 0 AND duplicate = 0 AND ignore = 0 GROUP BY d.dt ORDER BY d.dt
Penjelasan:
Alternatif untuk Menggunakan Dummy Rowsource
MySQL adalah unik kerana kekurangan fungsi terbina dalam untuk menjana jujukan tarikh. Walau bagaimanapun, terdapat beberapa pendekatan alternatif yang tersedia dalam sistem pangkalan data lain:
Atas ialah kandungan terperinci Bagaimana Mengendalikan Tarikh Hilang dalam Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!