UPDATE ステートメントでこれを行うことができるかどうかを知る必要があります。
UPDATE users SET ('field1', 'field2', 'field3')
VALUES ('value1', 'value2', 'value3');
または同様の構文。私はSQLiteを使用しています。
ノート:
誰も私を理解していません。個別のフィールドを個別の値に設定できるかどうかを知りたいだけです。それで全部です。
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 にも便利なページがあります。
SQL UPDATE ステートメント
UPDATE ステートメントは、テーブル内のレコードを更新するために使用されます。
SQL 更新構文
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();
この機能は、バージョン 3.15.0 以降でサポートされています。
SET 句での代入は、左側に列名を括弧で囲んだリスト、右側に同じサイズの行の値を指定できます。
構文は次のとおりです。
UPDATE users
SET ("field1", "field2", "field3") = ('value1', 'value2', 'value3')
-- WHERE ...;