2016-03-20 11 views
0

Ich habe ein Problem, wie Sie eine Tabelle auf der Grundlage von zwei Kriterien bestellen. Ich habe in meinem Tisch Spiele mit ihrer Start- und Endzeit. also möchte ich an der Spitze Spiele zeigen, die bald beginnen werden. das ist einfach, wir können nur nach Zeit asc bestellen. aber ich möchte, wenn ein Spiel beendet ist, auf den Grund gehen. einfachen Schema:Mysql eine Tabelle basierend auf zwei Kriterien bestellen

  1. game1 start_at 10.00 um 12:00 Uhr beendet
  2. game2 start_at 14.00 um 16:00 Uhr beendet
  3. GaMe3 start_at 20.00 um 22:00 Uhr beendet

also wenn es jetzt 16:00 Uhr ist. das Ergebnis der Abfrage Anzeige

  1. game1
  2. game2
  3. GaMe3

ich möchte nicht, dass, weil game1 um 12:00 Uhr beendet ist, es ist 16.00 Uhr an Zeit. Ich möchte das Ergebnis so sein, wenn seine 16.00 jetzt

  1. game2
  2. GaMe3
  3. game1

Antwort

0

Angenommen, Ihre Säulen sind:

game | start_time | end_time 
------|------------|----------- 
    g1 | 10:00  | 12:00 
    g2 | 14:00  | 16:00 
    g3 | 20:00  | 22:00  

Sie könnten tun Sie etwas wie das:

SELECT game FROM 
(
    SELECT game, start_time, end_time, 
     (CASE end_time 
       WHEN < NOW() THEN 1 
       ELSE 0 
     END) AS game_over 
    FROM GameTimes 
    ORDER BY start_time 
) 
ORDER BY game_over 

Da Sie nicht genügend Informationen über Ihre Tabellen zur Verfügung stellen (dh, welches Format die Zeiten tatsächlich sind), kann ich nicht garantieren, dass dies funktioniert - besonders der Vergleich mit NOW() - aber es bringt Sie zumindest Auf dem richtigen Weg.

+0

das Format der Zeit sind so 22:40 oder 01:10 ich meine es 24 Stunden Format – ler

Verwandte Themen