簡體   English   中英

mysql查詢在單獨的行上有開始和結束日期

[英]mysql query with start and end dates on individual rows

我有一個運行良好的數據驅動橫幅系統。

它從兩張桌子上跑下來

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_dateexpirebf_datestartbf_dateexpire

我想實現的是在所有拉banner_frames.bf_ID中列出banner_frameset.bp_frames ,要么省略或得到一個橫幅上,如果一方或雙方的開始日期和到期日期被設置,同時還檢索所有其他行架排依賴其中起始或到期時間都設置為NULL的情況

執行此查詢的最有效方法是什么,可以修改上述查詢,還是需要在do / while循環之前將其作為單獨的if語句運行?

我希望這是有道理的。

非常感謝

添加一個包含開始日期和結束日期作為變量的where子句,但是將開始日期和結束日期初始化為mysql支持最小/最大mysql (無論您使用哪種日期類型)。 默認情況下,查詢仍將正常運行,因為默認日期將包含所有內容。 根據需要更改開始/結束日期變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM