更新PHP Mysql表的最后10条记录

时间:2013-01-08 01:49:10

标签: php mysql

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

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

提前感谢您的帮助。

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

3 个答案:

答案 0 :(得分:12)

试试这个

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 :(得分:3)

你可以这样做。

方法1

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

方法2

如果你看docs

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;

尝试其中一种适合您的方法,如果您有任何问题,请告诉我。

答案 2 :(得分:1)

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

UPDATE users SET firstname='michael' WHERE id >= (SELECT MAX(id)-10 FROM users);