目前我正在建立一個學校社區網站,我在一個部分有問題是管理員發佈他/她想要檢查的新事件如果事件開始日期和時間沒有衝突也結束日期和在將其保存到數據庫之前。我嘗試了很多查詢,但仍然無法獲得確切的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