Menentukan Julat Tarikh Bertindih dalam MySQL
Untuk memastikan julat tarikh yang bercanggah dalam jadual tertentu, pertimbangkan pertanyaan yang disesuaikan yang menggunakan perkara berikut kriteria:
WHERE new_start < existing_end AND new_end > existing_start
di mana:
Pertanyaan ini secara berkesan mengenal pasti julat tarikh yang bersilang dengan sesi baharu yang dicadangkan, memberikan hasil yang lebih halus berbanding dengan pertanyaan asal.
Berikut ialah versi pertanyaan yang dikemas kini:
SELECT * FROM session WHERE "2010-01-05" < end_date AND "2010-01-25" > start_date;
Pertanyaan ini hanya mengembalikan sesi bercanggah, mengetepikan bukan -yang bertindih:
+----+------------+------------+ | id | start_date | end_date | +----+------------+------------+ | 2 | 2010-01-20 | 2010-01-30 | +----+------------+------------+
Pertanyaan yang disemak memastikan bahawa hanya sesi bertindih yang dikenal pasti, memberikan hasil yang lebih tepat untuk pengesanan konflik.
Atas ialah kandungan terperinci Bagaimana untuk Mengesan Julat Tarikh Bertindih dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!