php - 更新需要查找 'newest' 行的查询

标签 php sql mysql kohana-3

我的注销功能需要更新登录列表的最新行。

这是我想出的,但它甚至没有通过语法验证。

$query =
    'UPDATE user_logins
     SET active = 0
     WHERE user_id = ' . Database::instance()->escape($this->getCurrentUserId()) . '
     AND datetime = MAX(datetime) LIMIT 1';

基本上可能有 30 个左右具有相同的 user_id 值。我只想更新上次登录的信息。这显然是最新的日期时间值。

我做错了什么?

最佳答案

只要您的日期时间列是 timestampdatetime 类型字段,这应该可行。

$query =
    'UPDATE user_logins
     SET active = 0
     WHERE user_id = ' . Database::instance()->escape($this->getCurrentUserId()) . '
     ORDER BY datetime DESC LIMIT 0,1';

关于php - 更新需要查找 'newest' 行的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2354386/

相关文章:

php - 使用 `must implement interface Doctrine\ORM\EntityManagerInterface error` 将 EntityManagerInterface 注入(inject)我的服务

mysql - 如何在查询中使用变量

ios - CoreData中的自引用数据对象

c# - 错误sqlcommand.ExecuteNonQuery()

php - 如何使用动态单选按钮将数据从表单插入数据库..?

php - 使用 INSERT 将整数值插入 mysql int

MySQL:合并 guest 和注册用户的 ID 号

php - 为批量更新提交的一个或多个行缺少指定的索引。 (代码点火器)

mysql - sql/presto 另一列的百分比计算

php - Silex Controller 上的构造函数注入(inject)