簡単な質問のようですが、残念ながら例が見つかりません。
データベース「users」のテーブル「users」の最後の10レコードを更新するために、PHPにUPDATE文を使用したいとします。そのためのコードは何ですか?つまり、INSERT文には
LIMITなどを使用した答えがありますが、UPDATEにはありません。
よろしくお願いします。
pd:たとえば、最後の10レコードの「Firstname」フィールドを「michael」という単語で更新したいとします。
これを試して
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]
このようなことができます。
方法 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);