Heim >Datenbank >MySQL-Tutorial >Wie kann man überlappende Datumsbereiche in MySQL effizient identifizieren?
In MySQL müssen wir oft feststellen, ob sich ein bestimmter Datumsbereich mit einem beliebigen Datumsbereich in der gespeicherten Liste überschneidet. Um dieses Problem zu lösen, betrachten wir die Beziehung zwischen zwei Datumsbereichen:
Identifizieren Sie überlappende Bereiche
Der Schlüssel besteht darin, die Bereiche zu finden, die nicht überlappen. Indem wir diesen Zustand negativ definieren, können wir den Fokus auf die folgenden Kriterien eingrenzen:
In SQL ist das Ergebnis der Konvertierung dieser Logik in eine Abfrageform wie folgt:
<code class="language-sql">SELECT * FROM periods WHERE NOT (range_start > @check_period_end OR range_end < @check_period_start)</code>
Durch Umkehren der Logik können wir überlappende Bereiche wie folgt abrufen:
<code class="language-sql">SELECT * FROM periods WHERE range_start <= @check_period_end AND range_end >= @check_period_start</code>
Das obige ist der detaillierte Inhalt vonWie kann man überlappende Datumsbereiche in MySQL effizient identifizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!