mysql - 如何获取自倒数第二次登录以来更改的项目?

标签 mysql sql database

我有以下两个表:

表名为评论: (一个ID可以存在多次) 该ID意味着,以下评论是针对具有该ID的用户进行的。

名为login_history的表:

如何获取自用户倒数第二次登录以来的评论数量(一条评论由表 reviews 中的 id 表示)?

示例:

假设一个 id 19 的用户登录。当他登录时,一个新值将被插入到 login_history 中。这看起来像 2017-04-05 19:00:00, 19。然后,对他的评论进行编辑,并且 modified 值发生更改。如果用户随后注销并重新登录,他应该会看到某种消息:“自您上次登录以来已编辑了 1 个新评论”。

这方面的困难部分是在运行查询之前将新行插入到 login_history 中,例如在用户访问“新评论”页面之前。

如何通过一条sql查询得到想要的结果?

编辑1:

评论的示例数据:https://hastebin.com/uhoyupuvem.sqllogin_history 的示例数据:https://hastebin.com/ququzequsu.sql

最佳答案

第一:

查找上次登录日期(从 skayp 答案复制):

SELECT `for_date`
FROM `login_history`
WHERE `user` = 10
ORDER BY `for_date` DESC
LIMIT 1,1

然后使用此结果作为比较的一部分:

SELECT * FROM `test`.`reviews` WHERE `modified` > (SELECT `for_date`
FROM `login_history`
WHERE `user` = 10
ORDER BY `for_date` DESC
LIMIT 1,1)

因此,您拥有该用户在倒数第二次登录之前所做的所有修改。

关于mysql - 如何获取自倒数第二次登录以来更改的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43232454/

相关文章:

sql - 根据参数动态打开/关闭 WHERE bool 表达式

mysql - 如何将此 ER 图转换为关系模式

mysql - 外键约束应该提示但不知何故不是

php - mySQL 数据库字段 PHP 中的 Textarea 为空

Mysql不选择空值

mysql - Resin 4.0.38 上的 phpMyAdmin 版本 3.5.4

sql - 在 SQL Server Reporting Services 中绘制外推曲线

asp.net - SQL删除花费太长时间

javascript - 如何使用 mongo/mongoose 通过 _id 以外的字段查找文档

java - 从数据库加载显示 Jlist 中的值