イベント データを含む「events」という名前の MySQL テーブルがあります。重要な列は、イベントの開始と終了を表す文字列 (YYYY-MM-DD) を含む「開始」と「終了」です。
ある期間にアクティブなすべてのイベントのレコードを取得したいと考えています。
イベント:
------------------------------ ID | スタート | 終了 | ------------------------------ 1 | 2013-06-14 | 2013-06-14 | 2 | 2013-06-15 | 2013-08-21 | 3 | 2013-06-22 | 2013-06-25 | 4 | 2013-07-01 | 2013-07-10 | 5 | 2013-07-30 | 2013-07-31 | ------------------------------
リクエスト/検索:
例: 2013-06-13 から 2013-07-22 までのすべてのイベント: #1、#3、#4 SELECT id FROM events WHERE start BETWEEN '2013-06-13' AND '2013-07-22' : #1, #2, #3, #4 SELECT id FROM events WHERE end BETWEEN '2013-06-13' AND '2013-07-22' : #1, #3, #4 ====> 交差 : #1, #3, #4
例: 2013-06-14 から 2013-06-14 までのすべてのイベント: SELECT id FROM events WHERE start BETWEEN '2013-06-14' AND '2013-06-14' : #1 SELECT id FROM events WHERE end BETWEEN '2013-06-14' AND '2013-06-14' : #1 ====> 交差 : #1
多くのクエリを試しましたが、正確な SQL クエリを取得できません。
その方法がわかりませんか?助言がありますか?
ありがとう!