2016-03-20 14 views
0

Bir tabloyu iki kritere göre nasıl sipariş edeceğiniz konusunda bir sorunum var. Masa oyunlarımda başlangıç ​​ve bitiş zamanı var. Bu yüzden yakında başlayacak en iyi oyunlarda göstermek istiyorum. bu sadece kolay bir şekilde zaman atabiliriz. ama dibe gitmek için oyun bittiğinde istiyorum. basit şema:Mysql iki kritere dayalı bir tablo siparişi verin

  1. Game1 start_at 10:00 12:00 sona erdi
  2. game2 14:00 saat 16.00'da sona erdi start_at
  3. game3 20:00 22:00
sona erdi start_at

şimdi 16:00 ise. Sorgu ekranı

  1. Game1
  2. game2
  3. game3

i Game1 12:00 sona erdi çünkü artık zaman 16:00 olduğunu istemiyoruz sonucu. i onun 16:00 şimdi

  1. game2
  2. game3
  3. Game1

cevap

0

varsayarsak Sütunlarınızın ise sonuç böyle olmasını istiyorum:

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

Yapabilirsin böyle bir şey yap:

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 

Tablolarınız hakkında yeterli bilgi vermediğinizden (örneğin, zamanların gerçekte hangi formatta olduğu gibi), bunun işe yarayacağını garanti edemem - özellikle NOW() ile karşılaştırmak - ama en azından sizi alır doğru yolda.

+0

saatin biçimi şu şekildedir: 22:40 veya 01:10 Yani 24hours formatı – ler

İlgili konular