最近遇到 相似, 会议室预订的模型, 基本上 是 会议室 + 时间段来检测是否被占用。sql
其实思路比较简单 , 一开始的思路是 去查询 本身选择的时间段 与数据库已经存在的时间段匹配 是否 可用,这种实现太繁琐,并且思路貌似很混乱,数据库
后来简化思路: 只要查询本身选择的时间段 和 数据库里面的时间段 是否有交集 不就能够了么?.net
逆向思惟, 利器。blog
如下 转自: https://blog.csdn.net/a312024054/article/details/76786739table
数据库的字段 start_time, end_timeclass
输入的字段 a,btest
第一种im
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) )
两种结果相同
以上。查询