Mysql
 sql >> Base de données >  >> RDS >> Mysql

Déterminer la logique pour MySQL Select - Système de réservation

Je ne suis pas sûr à 100 %, mais je pense que cette requête devrait être assez proche :

select * from tblEvents
where (@starttime >= start && @starttime <= end) /* Starts while someone else has it */
or (@endtime >= start && @endtime <= end) /* Ends while someone else has it */
or (@startime <= start && @endtime >= end) /* Starts before & ends after someone else has it*/
and equipID = @equipID

Remplacez @starttime, @endtime &@equipID par l'ID d'équipement approprié et les heures de début et de fin saisies par l'utilisateur. Si cette requête ne renvoie aucun résultat, il ne devrait y avoir aucun conflit d'heure.

Fondamentalement, il vérifie ces 3 scénarios, où le *est votre heure de début et de fin, le - est le temps inutilisé et le | il est temps qu'il soit utilisé par quelqu'un d'autre :

-|||||*|||||------*------
------*--------|||*||||--
------*--|||||||--*------