2013-01-20 49 views
0

我在mysql數據庫中有一張表,其中包含本週的電視節目列表。這是這樣的。用SQL查詢查找並更新mysql中的當前直播節目

---------------------------------------------- 
start_time,  tv_program_name isLive 
2013-01-19 17:00 sports news 
2013-01-19 18:30 NBA.... 

...... 

------------------------------------------------ 

我想用SQL找出當前電視節目現在比較與START_TIME(),並在將isLive dB標記當前電視節目= 1

我嘗試使用SQL

------------- 
SELECT * 
FROM tv_programs 
ORDER BY ABS(TIMESTAMPDIFF( 
MINUTE , start_time, NOW())) ASC 
------------- 

但它不是正確的解決方案,因爲它僅返回tv_program這是最接近當前,沒有電視直播,這是現在播放程序。

任何人都可以看到這個問題嗎?

+3

你沒有'end_time',所以它是如何知道一個程序是否已經結束?是否有_always_程序正在運行? –

+0

如果您有結束時間,查詢列表更容易。 –

+0

是否只有一個頻道? – eggyal

回答

0
SELECT * FROM tv_programs 
WHERE start_time <= NOW() 
ORDER BY start_time DESC 
LIMIT 1; 
+0

是的,我認爲這應該適合我。感謝您的幫助 – user1994772

+0

我認爲它應該是「更新xxxx」,但我認爲這個答案足夠好。 – user1994772

0

您是否在尋找更新查詢?

UPDATE tv_programmess 
SET isLive = 1 
WHERE start_time = Now() 
+0

不,我正在尋找一個更新查詢,它可以 – user1994772

+0

*更新查詢哪些可以*? =) – bonCodigo