我正在尝试更新名称为 John
的最新记录(John
有多个记录但 ID 不同),但我似乎处于绑定(bind)状态。我的查询有什么问题?
UPDATE messages_tbl SET is_unread=1
WHERE ReceiveTime = (SELECT MAX(ReceiveTime) FROM messages_tbl WHERE name='John')
有没有更好的方法来做这样的事情?
最佳答案
您可以尝试使用 ORDER
和 LIMIT
。
试试这个:
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/