我需要按日期跟踪已打开,未打开和已发送的电子邮件。 假设我昨天发了5封电子邮件但昨天没有打开,今天又发了5封电子邮件,所以今天发送的电子邮件总数= 5。今天打开= 3(包括昨天的2和今天的1封电子邮件已打开。尚未打开7这是正确的)。但我需要显示
今天未开封的邮件数量=今天发送的邮件 - 今天已发送的电子邮件已开启
这是我的数据库结构
ID ||| Email ||| Event ||| date**
1 ||| AAA ||| Sent ||| 04-11-2015
2 ||| BBB ||| Sent ||| 04-11-2015
3 ||| CCC ||| Sent ||| 04-11-2015
4 ||| DDD ||| Sent ||| 04-11-2015
5 ||| EEE ||| Sent||| 04-11-2015
6 ||| FFF ||| Sent ||| 05-11-2015
7 ||| GGG ||| Sent ||| 05-11-2015
8 ||| HHH ||| Sent ||| 05-11-2015
9 ||| III ||| Sent ||| 05-11-2015
I0 ||| JJJ ||| Sent ||| 05-11-2015
11 ||| AAA ||| Open ||| 05-11-2015
12 ||| BBB ||| Open ||| 05-11-2015
13 ||| FFF ||| Open ||| 05-11-2015
答案 0 :(得分:0)
使用MySQL str_to_date
或curdate
: -
Select Email,
((select count(*) from table
where str_to_date(date,'%d-%m-%Y')=curdate() and Event='Sent')
-
(select count(*) from table
where str_to_date(date,'%d-%m-%Y')=curdate() and Event='Open')) as unopened
From table limit 1
答案 1 :(得分:0)
今天我发了这些电子邮件
FFF |||发送||| 2015年5月11日
GGG |||发送||| 2015年5月11日
HHH |||发送||| 2015年5月11日
III |||发送||| 2015年5月11日
JJJ |||发送||| 2015年5月11日
这些电子邮件只打开了1个
FFF |||打开||| 2015年5月11日
未开封的4封电子邮件。
当然这些都是今天开放的,但这些邮件是昨天发送的。AAA |||打开||| 2015年5月11日
BBB |||打开||| 2015年5月11日
我希望今天未开启=(今天已发送) - (今天已发送)
未开封= 5-1(今天已发送电子邮件已开通)
所以我将获得4分。
答案 2 :(得分:0)
要使用MySQL获取今天的记录,您可以尝试:
SELECT * FROM tbl_name WHERE date > DATE_SUB(NOW(), INTERVAL 1 DAY);