2012-04-09 21 views
3

最初の行とWHERE句を更新することは可能ですか?
私が試した:
SqliteのUPDATE TOP

UPDATE TOP (1) Players SET... WHERE... 

と:

UPDATE TOP 1 Players SET... WHERE 

をしかし、sqliteのにはTOPがないようです。 代替手段を使用できますか?
何か間違っていますか?

答えて

5

は、私が今確認できない

UPDATE Players SET... WHERE... LIMIT 1 

を試してみて、多分LIMITのみSELECT文で動作します。そうこれを行う場合:

UPDATE Players SET... WHERE ID in (SELECT ID FROM Players WHERE ... LIMIT 1) 
+0

@RenéBeneš:私の更新を参照してください。 –

+0

はい、ありがとう、完璧に動作します。これを受け入れます。 –

+0

更新/削除クエリで 'LIMIT'を使用すると、バグを再作成するのが難しくなります。パフォーマンス向上のために人々が「LIMIT」を使用していると聞いていますが、それは面倒なことではないと思います。 – Matthew

0

SQLiteはTOP Nクエリをサポートしていますが、それはこれを達成するためにthe LIMIT clauseを使用しています。いずれにせよ、それはUPDATEではなくSELECTステートメントに対するものです。 1行だけを更新する場合は、WHERE句を使用してUPDATEをフィルタ処理する必要があります。

編集:私は修正

立って、それがthe UPDATE statement does support the LIMIT clauseを表示されます。