MySQL 选取所有30天未登录的用户

标签 mysql sql unix-timestamp

我有一个包含用户 ID 和时间戳的表,如下所示。

[member id] [timestamp]
1            1142461087
1            1339461211
2            1321280124
1            1249042100
3            1308325002
3            1308259235

我想返回 30 天或更长时间未登录的唯一成员(member) ID 列表。

这是我当前的查询:

SELECT member_id, login_timestamp
  FROM logins 
  WHERE login_timestamp <= 1329461087
  GROUP BY member_id
  ORDER BY login_timestamp DESC

我认为这是正确的,但出于某种原因,在生产中,管理员用户的 ID 显示在列表中,这是不可能的,因为管理员每天都会登录。

最佳答案

这样的事情应该可行。

SELECT member_id, MAX(login_timestamp)
FROM logins 
GROUP BY member_id
HAVING MAX(login_timestamp) <= 1329461087
ORDER BY MAX(login_timestamp) DESC

关于MySQL 选取所有30天未登录的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9560905/

相关文章:

sql - 同一查询中的顶部和底部?

带有 except 的 SQL 临时表

Javascript 与 MySQL 的 promise

c# - C# 程序中 SQL Server 的 OleDB 连接字符串

mysql - SELECT FOR UPDATE 实际上是如何工作的?

javascript unix时间戳早于x

php - 如何将 datetime-local 输入转换为 unix 时间戳?

php - 日期和 Unix 时间之间的时间,以及对该时间进行倒计时的计时器

mysql - MyBatis 迁移 : migrate up causes org. apache.ibatis.jdbc.RuntimeSqlException

Android JSON 对象丢失了 URL 中的剩余数据