1. 程式人生 > >Mysql 查詢時間段是否可用,查詢時間段是否有交集

Mysql 查詢時間段是否可用,查詢時間段是否有交集

 

 

  最近遇到 類似, 會議室預訂的模型,  基本上 是  會議室 + 時間段來檢測是否被佔用。

  其實思路比較簡單 , 一開始的思路是 去查詢 自己選擇的時間段 與資料庫已經存在的時間段匹配  是否 可用,這種實現太繁瑣,而且思路貌似很混亂,

  後來簡化思路:  只要查詢自己選擇的時間段  和 資料庫裡面的時間段 是否有交集 不就可以了麼?

   逆向思維, 利器。

 

  以下 轉自: https://blog.csdn.net/a312024054/article/details/76786739

資料庫的欄位 start_time, end_time

輸入的欄位 a,b

第一種

SELECT * FROM test_table
WHERE
(start_time >= a AND start_time <= b)
OR (start_time <= a AND end_time >= b)
OR (end_time >= a AND end_time <= b)

  


第二種

SELECT * FROM test_table
WHERE
NOT (
    (end_time < a)
    OR (start_time > b)
)

  


兩種結果相同
以上。