目前我正在建立一个学校社区网站,我在一个部分有问题是管理员发布他/她想要检查的新事件如果事件开始日期和时间没有冲突也结束日期和在将其保存到数据库之前。我尝试了很多查询,但仍然无法获得确切的SQL。MySQL查询检查事件冲突
我正在使用MySQL服务器5和PHP 5.3。任何人都可以帮助我如何在表上查询我的意思是正确的SQL字符串。
继承人的表中的字段:
- 事项标识=> INT,
- EVENT_TYPE =>枚举( '学校', '科'),
- EVENT_TITLE =>文本,
- event_details = > LONGTEXT,
- event_start =>日期时间,
- event_end =>日期时间,
- event_added _by => INT,
- event_modified_on =>日期时间,
这里是我现在所拥有的:
SELECT *, time(event_start) as start_time, time(event_end) as end_time
FROM `tbl_events` WHERE ((date(event_start) between '2011-12-9' and
'2011-12-15') AND (time(event_start) between '00:00:00' and
'01:00:00')) OR ((date(event_end) between '2011-12-9' and
'2011-12-15') AND
您可以稍微简化为3个条件:1)任何现有事件在您的期间开始,2)任何现有事件在您的期间结束,或者3)任何现有事件在您的之前开始并结束。 –
如果管理员在该日期之间添加了问题,那么该如何处理? – naviciroel
只有两个条件。查看其他答案 – michael667