这似乎是一个简单的问题,但不幸的是我找不到例子。
假设我想在php中使用UPDATE语句来更新数据库"users"的表"users"的最后10条记录。它的代码是什么?我的意思是插入句子有一个
答案是使用LIMIT等,但UPDATE没有。
提前感谢你的帮助。
pd:例如,我想用最近10条记录中的"michael"字更新"Firstname"字段。
试试这个
UPDATE table SET notes="hi"
ORDER BY id DESC
LIMIT 10
根据Mysql文档,如果有一个唯一的列,按它的DESC排序,并使用LIMIT 10来选择最后10条记录。
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
你可以这样做。
方法1
UPDATE table_name SET column_name='value' WHERE id IN (SELECT id FROM table_name ORDER BY id desc LIMIT 0, 10);
方法2
如果你看文档
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
这意味着下面也应该为你工作
UPDATE table_name SET column_name='value' ORDER BY id desc LIMIT 10;
您还没有为您的表模式提供任何输入,但是这里有一个可以工作的想法:
UPDATE users SET firstname='michael' WHERE id >= (SELECT MAX(id)-10 FROM users);