UPDATEステートメントでこれを実行できるかどうかを知る必要があります。
UPDATE users SET ('field1', 'field2', 'field3')
VALUES ('value1', 'value2', 'value3');
または同様の構文。 SQLiteを使用しています。
注:
誰も私を理解していません。別々のフィールドを別々の値に設定できるかどうかを知りたいだけです。それで全部です。
あなたが提案するものに似ている(標準SQL)構文がありますが、私が知る限り、Postgresだけがそれを実装しています:
UPDATE users
SET (field1, field2, field3)
= ('value1', 'value2', 'value3')
WHERE some_condition ;
(異教徒向け)でテスト済み:SQL-Fiddle
これはPostgresでも機能します:
UPDATE users AS u
SET
(field1, field2, field3)
= (f1, f2, f3)
FROM
( VALUES ('value1', 'value2', 'value3')
) AS x (f1, f2, f3)
WHERE condition ;
これはPostgresとSQL-Serverで動作します:
UPDATE users
SET
field1 = f1, field2 = f2, field3 = f3
FROM
( VALUES ('value1', 'value2', 'value3')
) AS x (f1, f2, f3)
WHERE condition ;
@JackDouglasがコメントしたように、これはOracleで機能します。
UPDATE users
SET (field1, field2, field3)
= ( SELECT 'value1', 'value2', 'value3' FROM dual )
WHERE condition ;
投稿した内容は、UPDATE
の正しい構文ではありません。 UPDATE
の構文は次のとおりです。
UPDATE users
SET field1 = 'value1',
field2 = 'value2',
field3 = 'value3';
WHERE
句を追加するか、これによりすべてのレコードがUPDATE
されます。
レコードを更新する場合は、次のようになります。 WHERE条件なしで更新することはほとんどありません。
UPDATE users
SET field1='value1',
field2='value2',
field3='value3'
WHERE field1=1
試して
UPDATE users SET field1='value1', field2='value2'
等...
公式ドキュメントを見つけることができます こちら 。
W3Schoolsには、便利な page :もあります。
SQL UPDATEステートメント
UPDATEステートメントは、テーブル内のレコードを更新するために使用されます。
SQL UPDATE構文
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
注:UPDATE構文のWHERE句に注意してください。 WHERE句は、更新するレコードを指定します。 WHERE句を省略すると、すべてのレコードが更新されます!
編集:文字列を作成する必要があると思われるため、安全に行うための通常の方法は準備されたステートメントを使用することです。
Javaを想定して、StackOverflowにはすでに この例 があります。
SQLiteDatabase db = dbHelper.getWritableDatabase();
SQLiteStatement stmt = db.compileStatement("SELECT * FROM Country WHERE code = ?");
stmt.bindString(1, "US");
stmt.execute();
あなたの場合、
SQLiteDatabase db = dbHelper.getWritableDatabase();
SQLiteStatement stmt = db.compileStatement("UPDATE users SET field1=?, field2=?...");
stmt.bindString(1, "value1");
stmt.bindString(2, "value2");
stmt.execute();
いいえ、sqliteにはnoのような構文があります(postgresにはそのようなものが実装されているようです)-しかし、より適切に使用してください:
UPDATE users SET firstname = 'Joe', lastname = 'value2', age = 50 WHERE id=12;