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

MySQL:Apakah mungkin membuat kueri yang mengevaluasi data dari catatan yang berbeda?

Anda dapat membagi menjadi 2 baris setiap baris yang berisi Endtime hari berikutnya:

WITH cte AS (
  SELECT *, Weekday day, Starttime time1, Endtime time2 FROM user_time
  WHERE Starttime < Endtime 
  UNION ALL
  SELECT *, Weekday, Starttime, '23:59' FROM user_time
  WHERE Starttime > Endtime 
  UNION ALL
  SELECT *, 
         DATE_FORMAT((STR_TO_DATE(CONCAT(LEFT(CURRENT_DATE, 8), Weekday), '%X-%V-%W') + INTERVAL 1 DAY), '%a'), 
         '00:00', Endtime 
  FROM user_time
  WHERE Starttime > Endtime
)  
SELECT No, Restaurant, Weekday, Starttime, Endtime 
FROM cte
WHERE day = DATE_FORMAT(CURRENT_DATE, '%a')
  AND NOW() BETWEEN CONCAT(CURRENT_DATE, ' ', time1, ':00') AND CONCAT(CURRENT_DATE, ' ', time2, ':00') 

Lihat demo .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Optimalkan kueri yang mengelompokkan hasil berdasarkan bidang dari tabel yang digabungkan

  2. Sanitasi input tetapi output tidak seperti yang diharapkan

  3. Beberapa formulir dan satu halaman pemrosesan

  4. Ubah tabel untuk memberikan batasan kunci asing

  5. INNER JOIN meja yang sama