在MySQL中,我們經常需要判斷一個給定的日期範圍是否與儲存清單中的任何日期範圍重疊。為了解決這個問題,讓我們考慮兩個日期範圍之間的關係:
辨識重疊範圍
關鍵在於找到那些不重疊的範圍。透過否定定義這個條件,我們可以將重點縮小到以下標準:
在SQL中,將此邏輯轉換為查詢形式的結果如下:
<code class="language-sql">SELECT * FROM periods WHERE NOT (range_start > @check_period_end OR range_end < @check_period_start)</code>
透過反轉邏輯,我們可以檢索重疊的範圍,如下所示:
<code class="language-sql">SELECT * FROM periods WHERE range_start <= @check_period_end AND range_end >= @check_period_start</code>
以上是如何有效率地識別MySQL中重疊的日期範圍?的詳細內容。更多資訊請關注PHP中文網其他相關文章!