繁体   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