phpmyadmin 如何检查您要为活动计划的开始和结束时间是否尚未计划好?

bttbmeg0  于 2022-11-09  发布在  PHP
关注(0)|答案(1)|浏览(128)

我需要进行一个查询,检查用户想要计划的开始时间和结束时间是否尚未计划
我目前有这样的疑问:

select *
from planned_activities
where 
    user_id = 161
and
    '2022-01-11 17:36:00' between start_time and end_time
or '2022-01-11 18:36:00' between start_time and end_time
or ('2022-01-11 17:36:00' <= start_time and '2022-01-13 18:36:00' >= end_time);

我发现这很难解释,但如果计划不可行,我基本上想返回其他计划活动的数据。

isr3a4wc

isr3a4wc1#

SELECT EXISTS ( SELECT NULL
                FROM planned_activities
                WHERE @current_user_id = planned_activities.user_id 
                  AND @planned_activity_start < planned_activities.end_time
                  AND @planned_activity_end > planned_activities.start_time ) row_exists

该查询检查当前用户是否存在与输入的时间范围重叠的行。返回一行一列row_exists,可能的值为1(发现重叠)或0(输入的时间范围是自由的)。
如果相邻的时间范围也不允许,则使用弱比较运算符。

相关问题