Php 如何编写一个查询来获取mysql中的计数
我想得到今天的用户数和昨天的用户数,我只想写一个查询,我怎么能做到呢 这些是我的查询我只需要一个查询:Php 如何编写一个查询来获取mysql中的计数,php,mysql,sql,Php,Mysql,Sql,我想得到今天的用户数和昨天的用户数,我只想写一个查询,我怎么能做到呢 这些是我的查询我只需要一个查询: SELECT COUNT(*) FROM visitors group by visited_date ORDER by visited_date DESC limit 1,1 as todayCount SELECT COUNT(*) FROM visitors group by visited_date ORDER by visited_date DESC limit 1,0 as ye
SELECT COUNT(*) FROM visitors group by visited_date ORDER by visited_date DESC limit 1,1 as todayCount
SELECT COUNT(*) FROM visitors group by visited_date ORDER by visited_date DESC limit 1,0 as yesterdayCount
我的预期结果或仅2列
todayCount yesterdayCount
2 4
如果您知道当前和以前的日期,则可以执行以下操作:
SELECT SUM(visited_date = CURDATE()) as today,
SUM(visited_date = CURDATE() - interval 1 day) as yesterday
FROM visitors
WHERE visited_date >= CURDATE() - interval 1 day;
如果您不知道这两天,那么您可以做类似的事情,获取数据中的最新日期:
SELECT SUM(v.visited_date = m.max_vd) as today,
SUM(v.visited_date < m.max_vd) as yesterday
FROM visitors v CROSS JOIN
(SELECT MAX(v2.visited_date) as max_vd FROM visitors v2) as m
WHERE v.visited_date >= m.max_vd - interval 1 day
这应该可以做到:
SELECT COUNT(CASE
WHEN visited_date = CURDATE() THEN 1
END) AS todayCount ,
COUNT(CASE
WHEN visited_date = CURDATE() - INTERVAL 1 DAY THEN 1
END) AS yesterdayCount
FROM visitors
WHERE visited_date IN (CURDATE(), CURDATE() - INTERVAL 1 DAY)
GROUP BY visited_date
ORDER by visited_date
试试这个简单的查询
select visited_date as date, COUNT(*) as count from `visitors`
group by `visited_date` order by `visited_date` asc
它将产生如下产出:
这对你很有用。试试这个:
$sqlToday=从menjava中选择COUNT*,其中DATEdate\u submitted=当前日期
$SQLDayed=从menjava中选择COUNT*,其中DATEdc_created=CURDATE-间隔1天 您可以尝试从访客中选择SUMvisited_date='2017-07-06'作为yesterdayCount,SUMvisited_date='2017-07-07'作为todayCount,并让我知道吗?请参见:您可以将限制设置为2您的查询不包含昨天计数和今天计数。它从数据中获取最近两天的计数。第二天正在工作。。。但第一个错误是:1054-“字段列表”中的未知列“CURDATE”不应按WHERE子句后面的子句进行分组?比如CURDATE中的WHERE visted_date,CURDATE-INTERVAL 1 DAY GROUP BY visted_date?@ravisachaniya Ooops,是的,谢谢你的更正!