6

这似乎是一个简单的问题,但不幸的是我找不到例子。

假设我想在 php 中使用 UPDATE 语句来更新数据库“users”的表“users”的最后 10 条记录。它的代码是什么?我的意思是 INSERT 句子有一个
使用 LIMIT 等的答案,但 UPDATE 没有它。

在此先感谢您的帮助。

pd:例如,我想在最后 10 条记录中用“michael”字词更新“Firstname”字段。

4

3 回答 3

15

Try this

UPDATE table SET notes="hi"
ORDER BY id DESC
LIMIT 10

As per Mysql docs, if there is a unique column, order by it DESC, and use LIMIT 10 to select last 10 records.

UPDATE [LOW_PRIORITY] [IGNORE] table_reference
        SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
        [WHERE where_condition]
        [ORDER BY ...]
        [LIMIT row_count]
于 2013-01-08T02:07:22.190 回答
3

你可以做这样的事情。

方法一

UPDATE table_name SET column_name='value' WHERE id IN (SELECT id FROM table_name ORDER BY id desc LIMIT 0, 10);

方法二

如果您查看文档

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;

Try one of them which suits you and let me know if you have any issues.

于 2013-01-08T02:06:28.010 回答
1

您尚未在表架构中提供任何输入,但这里有一个可行的想法:

UPDATE users SET firstname='michael' WHERE id >= (SELECT MAX(id)-10 FROM users);
于 2013-01-08T02:01:32.767 回答