php - MySQL:尝试以数组格式获取过去6个月的注册用户数

标签 php mysql wordpress

我正在使用 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/

相关文章:

java - Java 中的安全 Web 服务调用

PHP 代码生成段错误

mysql - Docker:连接到 mysql 时遇到问题,网络问题?

html - 在 wordpress 页面上的元素旁边添加一些文本

html - CSS 你能设置全局值吗

PHP - cgi.fix_pathinfo = 1 - 在网络服务器上的 php.ini 中有什么影响(wp)

php - Yii 文档生成器不接受 docs 命令

php - 将“添加到购物车”按钮替换为 WooCommerce 3 中商店页面上链接到产品页面的“阅读更多”按钮

php - 在 PHP 中执行事务时遇到问题

mysql - Qt 库 'mysql' 未定义