我正在嘗試寫ONE SQL查詢,它總是給出三行結果行。數據庫如下:MySQL查詢從播放列表計劃中選擇播出節目
uid | program_date | program_time | program_name
------------------------------------------------
1 | 2012-04-16 | 21:00 | Some movie
2 | 2012-04-16 | 23:00 | Program end
3 | 2012-04-17 | 10:00 | Animation
4 | 2012-04-17 | 11:00 | Some other movie
5 | 2012-04-17 | 12:00 | Some show
我需要的所有 - 總是有三排 - 什麼是現在,下一個和upcomming。所以如果今天是2012-04-16 21:00
它應該輸出Some movie
,Program end
,Animation
。它應該輸出Program end
,Animation
,Some other movie
。
問題是,我需要「導航」回在一天,如果沒有記錄WHERE program_date = date("Y-m-d") AND program_time <= date("H:i:s");
還有一個問題 - 數據庫不具有Unix的時間戳字段,只Uid
,program_date
(日期字段)和program_time
(時間字段)和program_name
。
此外,有可能是Uid
沒有按順序插入表中,因爲有些節目條目可能會插入到現有的節目時間表中。
我想各種辦法,但是想做一個SQL查詢這一切,而不在PHP循環。
誰能幫助我在這裏?
感謝您的回答,但它無法按預期工作。 union select的第一部分沒有從我的第一篇文章的數據庫示例中獲取正確的記錄,日期爲2012-04-17,時間爲00:00。 該查詢工作,如果時間是從10:00 :( – 2012-04-18 11:17:25
愚蠢的我:幾場排序條件應該寫不同的方式。現在它正在工作(我測試過) – kirilloid 2012-04-18 11:44:24
它似乎在工作! :)非常感謝,你做得很棒! – 2012-04-18 12:49:28