Mysql:更新最新记录的字段

标签 mysql sql sql-update

我正在尝试更新名称为 John 的最新记录(John 有多个记录但 ID 不同),但我似乎处于绑定(bind)状态。我的查询有什么问题?

UPDATE messages_tbl SET is_unread=1
WHERE ReceiveTime = (SELECT MAX(ReceiveTime) FROM messages_tbl WHERE name='John')

有没有更好的方法来做这样的事情?

最佳答案

您可以尝试使用 ORDERLIMIT

试试这个:

UPDATE messages_tbl SET is_unread = 1
WHERE name = 'John'
ORDER BY ReceiveTime DESC
LIMIT 1

此查询将按照从最高(最近)ReceiveTime 到最低(最旧)ReceiveTime 的顺序更新行。与 LIMIT 结合使用,只会更改最近的 ReceiveTime

关于Mysql:更新最新记录的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15715922/

相关文章:

php - 异常 : Handshake Failed(Android-studio, 联机数据库)

mysql - 使用 where 或 IF SQL 在 Select 中求和

sql - 将具有多列的单行转置为两列的多行

mysql - 如何暂时禁用 MySQL 中的外键约束?

c# - SQL UPDATE 没有更新数据库,我的 SQL 语句有问题吗?

java - @ManyToOne 与连接表的关系(nullable = false)

PHP MySQL 获取日期之间的数据

mysql 使用 select count() from inner join 更新

sql - 在 Oracle 中使用单个更新语句更新两个依赖列

php - PDO 在 longtext 列上返回 NULL,即使它不是 NULL