根据我之前创建的这个主题(MySQL : Count row where sum of left day is less than 30)。现在我有另一个问题。我需要将那些将在 30 天内过期的行作为总和。所以我可以知道一个月内有多少产品会过期。这是我的代码:
用户数据库
id name exp_product1 exp_product2 exp_product1
1 John 2013-03-01 2013-02-28 2013-03-27
2 Alice 2013-02-25 2013-04-25 2013-10-10
3 Ken 2013-01-10 2013-01-20 2013-02-11
4 Elise 2013-04-11 2013-05-23 2013-11-11
5 Bruce 2013-03-14 2013-06-06 2013-09-10
从上表。有几个用户的 4 件产品将在接下来的 30 天内过期。
- 约翰= exp_product1, exp_product2
- Alice = exp_product1 和
- 布鲁斯= exp_product1
所以我写道:
SELECT count(*) AS exp_pax1
FROM user_db
WHERE exp_product1<=timestampadd(day, 30, now())
AND exp_product1 >= now();
SELECT count(*) AS exp_pax2
FROM user_db
WHERE exp_product2<=timestampadd(day, 30, now())
AND exp_product2 >= now();
SELECT count(*) AS exp_pax3
FROM user_db
WHERE exp_product3<=timestampadd(day, 30, now())
AND exp_product3 >= now();
然后我将这些结果与 PHP 相加:(假设已获取值)
$exp_pax1=exp_pax1
$exp_pax2=exp_pax2
$exp_pax3=exp_pax3
$total_exp=$exp_pax1+$exp_pax2+$exp_pax3;//4
好吧,问题是:如何将这些行缩短为单个 mySQL 命令?请建议。
问候,