1

このクエリが必要です-最後の1つのレコードを更新します。

UPDATE changes SET checked='' WHERE item_id = 119898 AND type = 'example_edit' AND checked != 'restored' ORDER BY id DESC LIMIT 1, 1

データベースエコー:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1' at line 1

1の近くで何が問題になっていますか?

4

2 に答える 2

0

標準の更新ステータス

 UPDATE [LOW_PRIORITY] [IGNORE] table_reference
        SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
        [WHERE where_condition]
        [ORDER BY ...]
        [LIMIT row_count]

あなたの場合はこれを試してください

UPDATE changes SET checked='' WHERE item_id = 119898 AND type = 'example_edit' AND checked != 'restored' ORDER BY id DESC LIMIT 1

それを試してみてください、コードテスト済み。更新の制限では、行カウントのみを使用でき、1,1などは使用できません。

于 2012-04-04T09:02:35.910 に答える
0

LIMITはUPDATEで使用できますが、行数のみで使用できます。これを参照してください。

LIMIT句は、更新できる行数に制限を設けています。

したがって、このクエリは機能するはずです-

 UPDATE 
  changes 
SET
  checked = '' 
WHERE item_id = 119898 
  AND TYPE = 'example_edit' 
  AND checked != 'restored' 
ORDER BY id DESC 
LIMIT 1;
于 2012-04-04T09:05:25.530 に答える