Dans MySQL, nous devons souvent déterminer si une plage de dates donnée chevauche une plage de dates dans la liste stockée. Pour résoudre ce problème, considérons la relation entre deux plages de dates :
Identifier les plages qui se chevauchent
La clé est de trouver les plages qui ne se chevauchent pas. En définissant cette condition de manière négative, nous pouvons nous concentrer sur les critères suivants :
En SQL, le résultat de la conversion de cette logique en forme de requête est le suivant :
<code class="language-sql">SELECT * FROM periods WHERE NOT (range_start > @check_period_end OR range_end < @check_period_start)</code>
En inversant la logique, nous pouvons récupérer les plages qui se chevauchent comme suit :
<code class="language-sql">SELECT * FROM periods WHERE range_start <= @check_period_end AND range_end >= @check_period_start</code>
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!