我一直在用很可能非常简单的东西用头撞 table 。
该数据库收集了来自不同商店的产品,每个产品都有标准的 MySQL yyyy-mm-dd
日期。我正在尝试找到一种方法来显示哪些商店当前没有任何优惠,哪些商店有优惠。目前我的页面如下所示:
折扣店:
Outlet 1
Outlet 3
Outlet 7
没有特价的商店:
Outlet 2
Outlet 4
Outlet 5
目前我只有一个列表
- 当前特价,或
- 过期特价
但我想显示哪些商店目前没有任何特价商品。
类似于:
SELECT outlet
FROM `specials`
WHERE `end_date` < '$today'
GROUP BY `outlet`
ORDER BY outlet ASC
WHERE outlet also doesn't have any specials after today's date
有什么想法吗?
最佳答案
我认为您想查看 having
子句中的最大 end_date
,而不是在 where
子句中进行过滤:
SELECT outlet
FROM specials
GROUP BY outlet
HAVING max(end_date) < '$today'
ORDER BY outlet ASC;
注意:如果您要使用与当前日期的日期比较,请使用 now()
而不是应用程序中设置的变量。如果$today
确实可以是任何日期,则使用变量来传递它(尽管参数比传递变量的字符串替换更好)。
关于php - 比较当前日期之前和之后的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21935468/