Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Bestimmen Sie die Logik für MySQL Select - Reservierungssystem

Ich bin mir da nicht 100 % sicher, aber ich denke, diese Abfrage sollte ziemlich nah dran sein:

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

Ersetzen Sie @starttime, @endtime &@equipID durch die entsprechende Geräte-ID und die vom Benutzer eingegebenen Start- und Endzeiten. Wenn diese Abfrage keine Ergebnisse zurückgibt, sollte es keine Zeitkonflikte geben.

Im Grunde wird nach diesen 3 Szenarien gesucht, wobei *Ihre Start- und Endzeit ist, das - ungenutzte Zeit ist und das | ist Zeit, die von jemand anderem verwendet wird:

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