Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tentukan Logika untuk MySQL Select - Sistem Reservasi

Saya tidak 100% yakin akan hal ini, tetapi menurut saya kueri ini seharusnya cukup mendekati:

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

Ganti @starttime, @endtime &@equipID dengan id peralatan yang sesuai dan waktu mulai &berakhir yang dimasukkan oleh pengguna. Jika kueri ini tidak memberikan hasil, maka seharusnya tidak ada konflik waktu.

Pada dasarnya itu memeriksa 3 skenario ini, di mana *adalah waktu mulai &berakhir Anda, - adalah waktu yang tidak digunakan, dan | adalah waktu yang digunakan oleh orang lain:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa yang salah dengan kueri SQL Fiddle saya?

  2. PHP pagination MySQL dengan pemesanan acak

  3. mysql seperti peningkatan kinerja

  4. Rekaman Aktif CodeIgniter - Pernyataan Grup ATAU

  5. Mysql - Bantu saya mengubah kueri pencarian ini untuk mendapatkan hasil yang diinginkan