php - 计算两个时间戳之间每个用户的记录数

标签 php mysql sql

我有两种情况。

1:我想统计今天使用特定用户 ID 输入的表中的记录。即仅显示今天输入的统计数据。

2:我想显示具有特定用户ID的一周时间跨度的记录。即每次显示记录时应间隔一周时间。

以下是我的查询:

$sql2=$Db1->query("SELECT COUNT(userid) AS total FROM tablename WHERE userid='$userid'");

显示记录

<?php
while($row = mysql_fetch_array($sql2))
  {
  echo "<td>" . $row['total'] . "</td>";
 }
?>

最佳答案

我确定您有包含此日期信息的列。然后您可以使用:

SELECT
    DATE(your_date_column), 
    COUNT(userid) AS total 
FROM tablename 
WHERE userid='$userid'
AND your_date_column BETWEEN (NOW() - INTERVAL 1 WEEK) AND NOW()
GROUP BY DATE(your_date_column)

如果您只需要完整天数的数据,那么您必须稍微调整查询,即排除此间隔的第一天。

如果您只需要本周的总计而不需要每日计数,您可以使用

SELECT
    userid,
    COUNT(userid) AS total 
FROM tablename 
WHERE userid='$userid'
AND your_date_column BETWEEN (NOW() - INTERVAL 1 WEEK) AND NOW()
GROUP BY userid;

注意

请查看red box for the mysql_ extension并考虑迁移到 mysqli 或 PDO。使用带有占位符的准备好的语句来绑定(bind)输入值比连接 sql 字符串要好得多。

关于php - 计算两个时间戳之间每个用户的记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25220025/

相关文章:

c# - 将数据从(大)文件 Excel 导入到 datagridview,然后导入数据库 - 为什么插入到数据库需要这么长时间并且不保存所有数据?

sql - 如何将 SQL 服务器转换为 Oracle?

javascript - 为什么这个非常简单的 AJAX 脚本不起作用

php - $$$var 是什么意思。它可以在 php 中运行吗

php - 在 FPDF 中设置纸张大小

mysql - 将第 n 行之后的所有行组合在一起

transactions - MySQL import sqldump 成功回滚失败

mysql 查询对于一列值返回 NULL

java - 3.9.2如何使用Jooq映射器

php - 维基词典 - 我无法获取本地工作副本