sql >> Databasteknik >  >> RDS >> Mysql

Bestäm logik för MySQL Select - Reservation System

Jag är inte 100 % säker på detta, men jag tror att den här frågan borde vara ganska nära:

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

Ersätt @starttid, @sluttid &@utrustningID med lämpligt utrustnings-ID och start- och sluttider som angetts av användaren. Om den här frågan inte ger några resultat bör det inte finnas några tidskonflikter.

I grund och botten letar det efter dessa 3 scenarier, där *är din start- och sluttid, - är oanvänd tid och | är det dags att den används av någon annan:

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


  1. Välj uttalande för att returnera förälder och oändliga barn

  2. mycket stor mysql-tabell och rapportering

  3. Tips för att lagra PostgreSQL-säkerhetskopior på Google Cloud (GCP)

  4. Ändra tabell för att ge utländsk nyckel begränsning