6

簡単な質問のようですが、残念ながら例が見つかりません。

データベース「users」のテーブル「users」の最後の10レコードを更新するために、PHPにUPDATE文を使用したいとします。そのためのコードは何ですか?つまり、INSERT文には
LIMITなどを使用した答えがありますが、UPDATEにはありません。

よろしくお願いします。

pd:たとえば、最後の10レコードの「Firstname」フィールドを「michael」という単語で更新したいとします。

4

3 に答える 3

15

これを試して

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

Mysql docs に従って、一意の列がある場合は、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]
于 2013-01-08T02:07:22.190 に答える
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

ドキュメントを見れば

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;

あなたに合ったものを試してみて、問題があればお知らせください。

于 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 に答える