sql >> Databáze >  >> RDS >> Mysql

MySQL:Je možné vytvořit dotaz, který vyhodnocuje data z různých záznamů?

Každý řádek, který obsahuje Endtime, můžete rozdělit na 2 řádky následujícího dne:

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') 

Podívejte se na ukázku .



  1. Reprodukujte com.mysql.jdbc.exceptions.jdbc4.CommunicationsException s nastavením Spring, hibernate a C3P0

  2. Známky toho, že vaše databáze již pro vás nefunguje

  3. INSERT INTO ... ON DUPLICATE AKTUALIZUJTE všechny hodnoty

  4. PDO Vložit pole pomocí klíče jako názvu sloupce