Mysql
 sql >> база данни >  >> RDS >> Mysql

Определете логиката за MySQL Select - Резервационна система

Не съм 100% сигурен в това, но мисля, че тази заявка трябва да е доста близка:

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

Заменете @starttime, @endtime &@equipID с подходящия идентификатор на оборудването и началните и крайните времена, въведени от потребителя. Ако тази заявка не върне резултати, тогава не трябва да има времеви конфликти.

По същество това е проверка за тези 3 сценария, където *е вашето начално и крайно време, - е неизползвано време и | време е да се използва от някой друг:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кой е най-добрият и лесен начин за попълване на падащо меню въз основа на друго падащо меню

  2. SugarCRM - Грешка в базата данни - Размерът на реда е твърде голям?

  3. Създаване на значки за моя сайт, най-добрият начин за съхраняване на потребителски значки? Използване на PHP

  4. Не е уникална таблица/псевдоним

  5. MySQL - Проблем с броенето на редове и лявото присъединяване