我正在使用 wordpress 和 Mysql。
我需要通过 Chart.js 输出注册用户数量,为此我需要每个月的注册用户数量,假设是第 1、2、3、4、5、6 个月。
目前我运行 6 个 MySQL 查询来获取此信息。他们是:
$sqlmonth0 = "SELECT COUNT(*) FROM wp_users WHERE YEAR(user_registered)=YEAR(DATE_SUB(CURDATE(), INTERVAL 0 MONTH)) AND MONTH(user_registered)= MONTH(DATE_SUB(CURDATE(), INTERVAL 0 MONTH))";
$sqlmonth1 = "SELECT COUNT(*) FROM wp_users WHERE YEAR(user_registered)=YEAR(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) AND MONTH(user_registered)= MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))";
// and so on... for 6 more sql queries. Then
$month0=$wpdb->get_results($sqlmonth0);
$month1=$wpdb->get_results($sqlmonth1);
这有效吗?我正在考虑一些代码,以以下格式获取当月所有注册人员的数组:
$registeredusers = array($month0,$month1,$month2,$month3)
这也等于$registeredusers = $wpdp->get_results($sql)
但是这样的$sql
代码是什么?
如您所见,如果我每天都这样做,我将需要计算超过 180 个 SQL 查询,这对我来说效率很低,而且在代码中看起来也很糟糕。
最佳答案
考虑使用分组依据。有关 Group By 的信息,您可以查看 Mysql Group By
您的查询应如下所示。根据要求添加日期的 where 子句。
SELECT COUNT(*), CONCAT(YEAR(user_registered),",",MONTH(user_registered)) AS YearMonth FROM wp_users GROUP BY Year(user_registered), Month(user_registered)
关于php - MySQL:尝试以数组格式获取过去6个月的注册用户数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45281086/