ホームページ >データベース >mysql チュートリアル >MySQL で重複する日付範囲を検出するにはどうすればよいですか?

MySQL で重複する日付範囲を検出するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-13 15:28:11850ブラウズ

How to Detect Overlapping Date Ranges in MySQL?

MySQL で重複する日付範囲を決定する

特定のテーブル内で競合する日付範囲を確認するには、次を使用するカスタマイズされたクエリを検討してください。条件:

WHERE new_start < existing_end AND new_end > existing_start

ここで:

  • new_start と new_end は、挿入される新しいセッションの日付範囲を表します
  • existing_start とexisting_end は、挿入される新しいセッションの日付範囲を表します既存のセッション

このクエリは、既存のセッションと交差する日付範囲を効果的に識別します。提案された新しいセッション。元のクエリと比較して、より洗練された結果が得られます。

クエリの更新版は次のとおりです。

SELECT *
FROM session
WHERE "2010-01-05" < end_date AND "2010-01-25" > start_date;

このクエリは、重複しないセッションを省略し、競合するセッションのみを返します。 1 つ:

+----+------------+------------+
| id | start_date | end_date   |
+----+------------+------------+
|  2 | 2010-01-20 | 2010-01-30 |
+----+------------+------------+

改訂されたクエリにより、重複するセッションのみが識別されるようになり、競合検出のより正確な結果が得られます。

以上がMySQL で重複する日付範囲を検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。