2013-10-03 78 views
1

我有一個數據驅動的橫幅系統,運行得非常好。mysql查詢個別行上的開始日期和結束日期

它運行關閉兩個表

banner_frames 這包含各行的所有橫幅幀和包括圖像,文本和幀佈局信息。

banner_frameset 這包含將查詢引入查詢的banner_frames行作爲逗號分隔值的分組信息。

有一個php變量$bannerpageid如果在頁面上設置,則運行此查詢。

mysql_select_db($database_banners, $banners); 
$query_banner_frameset = "SELECT banner_frameset.*, banner_frames.* 
FROM banner_frameset, banner_frames 
WHERE banner_frameset.bp_ID = $bannerpageid 
AND FIND_IN_SET(banner_frames.bf_ID, banner_frameset.bp_frames) 
AND banner_frames.bf_live = 1 
ORDER BY FIND_IN_SET(banner_frames.bf_ID, banner_frameset.bp_frames)"; 
$banner_frameset = mysql_query($query_banner_frameset, $banners) or die(mysql_error()); 
$row_banner_frameset = mysql_fetch_assoc($banner_frameset); 
$totalRows_banner_frameset = mysql_num_rows($banner_frameset); 

我想修改查詢以包括針對每一幀行的可選起始日期和/或期滿日期,只顯示受影響的幀,如果當前的日期/時間比設定的條目小於或大於任何橫幅框架行。

的開始日期和到期日的banner_frame列: bf_datestartbf_dateexpire

我想實現的是在拉所有banner_frames.bf_IDbanner_frameset.bp_frames上市,要麼省略或有標題框行依賴於是否設置開始日期和到期日期中的一個或兩個,同時仍檢索所有其他行,其中開始或到期都設置爲NULL

執行此查詢的最有效方法是什麼?查詢將被修改,還是需要在我的do/while loo之前將它作爲單獨的if語句運行P +

我希望這是有道理的。

非常感謝

回答

0

添加where子句包括起始和結束日期作爲變量,但初始化開始和結束日期的min/max mysql supports不管什麼日期類型所使用。默認情況下,由於默認日期是全包的,查詢仍然可以正常運行。根據需要更改開始/結束日期變量。

相關問題