Identifier les plages de dates qui se chevauchent dans MySQL
Dans MySQL, vous pouvez déterminer si une plage de dates spécifiée chevauche une liste prédéfinie de plages de dates en appliquant intelligemment une logique inverse.
Voici un exemple :
<code>1983年6月10日至1983年6月14日 1983年7月15日至1983年7月16日 1983年7月18日至1983年7月18日</code>
Si nous voulons vérifier si la plage de dates du 6 juin 1983 au 18 juin 1983 chevauche une plage définie, nous pouvons déterminer la condition suivante :
Période ne figurant pas dans la liste :
En excluant les périodes qui correspondent à ces critères, nous identifions efficacement toutes les périodes qui se chevauchent.
Cas frontaliers :
Ces situations doivent être considérées individuellement pour déterminer si elles se chevauchent.
La requête SQL suivante peut être utilisée pour récupérer des lignes qui se chevauchent en fonction de la logique inverse :
<code class="language-sql">SELECT * FROM periods WHERE range_start = @check_period_start</code>
En utilisant l'opérateur NOT dans la clause WHERE, une requête qui autrement trouverait des lignes qui ne se chevauchent pas est annulée, renvoyant ainsi les lignes qui se chevauchent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!