我有一个MySQL问题。我在下面的例子中使用了Laravel,但我的问题与MySQL有关。
假设我有一个约会表。约会可以是任何期限。
所以我有2个约会;
因此;如果我在3月1日和2日之间搜索记录 - 我将获得2个结果。类似的事情,"其中date< = 3月1日和< = 3月2日"
不要介意这个命令 - 这只是一个例子。
我的底线是,如果我在3月1日到2日之间搜索记录,我将获得两次约会。
我的问题;如果我在4月29日到3月4日举办活动怎么办?
作为一个例子;
所以,如果我有两个约会,我说" WHERE date> = 2019-03-01 AND< = 2019-03-02" - 然后我仍然会得到预约A和预约B.
但实际上,由于任命C
,空间将被占用我怎样才能搜索2个日期变量之间的记录 - 但是找到约会C的方法呢?
所以,基本上,在绘制/编制我的日历时,我会有我的日历表,看看预约A和预约B - 但我也应该看到约会C作为全天活动。
我不想从数据库中选择所有约会记录并对其进行排序 - 我希望有更好的解决方案。
答案 0 :(得分:0)
想象一下,我们必须找到t1和t2之间发生的事件。例如,我们的事件跨越a1和a2,b1和b2以及c1和c2。
根据您的说法,下一个公式将满足您的要求:
SELECT * FROM some_table WHERE (start_date < t1 AND end_date > t1) OR (start_date >= t1 AND start_date < t2)
此处t1
和t2
是请求范围的边界,start_date
和end_date
是在MySQL中存储相应数据的列。