J'ai besoin de savoir si je peux le faire dans une instruction UPDATE:
UPDATE users SET ('field1', 'field2', 'field3')
VALUES ('value1', 'value2', 'value3');
Ou une syntaxe similaire. J'utilise SQLite.
Remarque:
Personne ne me comprend, je veux juste savoir s'il est possible de FIXER des champs séparés à des valeurs distinctes. C'est tout.
Il existe une syntaxe (SQL standard) similaire à ce que vous proposez mais à ma connaissance, seul Postgres l'a implémentée:
UPDATE users
SET (field1, field2, field3)
= ('value1', 'value2', 'value3')
WHERE some_condition ;
Testé (pour les infidèles) dans: SQL-Fiddle
Cela fonctionne également dans Postgres:
UPDATE users AS u
SET
(field1, field2, field3)
= (f1, f2, f3)
FROM
( VALUES ('value1', 'value2', 'value3')
) AS x (f1, f2, f3)
WHERE condition ;
Cela fonctionne dans Postgres et SQL-Server:
UPDATE users
SET
field1 = f1, field2 = f2, field3 = f3
FROM
( VALUES ('value1', 'value2', 'value3')
) AS x (f1, f2, f3)
WHERE condition ;
et comme l'a commenté @JackDouglas, cela fonctionne dans Oracle:
UPDATE users
SET (field1, field2, field3)
= ( SELECT 'value1', 'value2', 'value3' FROM dual )
WHERE condition ;
Ce que vous avez publié n'est pas la syntaxe correcte pour UPDATE
. Pour UPDATE
votre syntaxe est:
UPDATE users
SET field1 = 'value1',
field2 = 'value2',
field3 = 'value3';
Vous voudrez ajouter une clause WHERE
ou cela UPDATE
tous les enregistrements.
Si vous souhaitez mettre à jour un enregistrement, il devrait ressembler à ceci. Vous devriez très rarement vouloir mettre à jour sans condition WHERE.
UPDATE users
SET field1='value1',
field2='value2',
field3='value3'
WHERE field1=1
Essayer
UPDATE users SET field1='value1', field2='value2'
etc...
Vous pouvez trouver les documents officiels ici .
W3Schools a également un utile page :
Instruction SQL UPDATE
L'instruction UPDATE est utilisée pour mettre à jour les enregistrements d'une table.
Syntaxe de mise à jour SQL
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
Remarque: notez la clause WHERE dans la syntaxe UPDATE. La clause WHERE spécifie le ou les enregistrements à mettre à jour. Si vous omettez la clause WHERE, tous les enregistrements seront mis à jour!
EDIT: puisque vous semblez avoir besoin de créer une chaîne, la méthode normale pour le faire en toute sécurité est d'utiliser des instructions préparées.
En supposant que Java, nous avons déjà cet exemple sur StackOverflow:
SQLiteDatabase db = dbHelper.getWritableDatabase();
SQLiteStatement stmt = db.compileStatement("SELECT * FROM Country WHERE code = ?");
stmt.bindString(1, "US");
stmt.execute();
Dans ton cas,
SQLiteDatabase db = dbHelper.getWritableDatabase();
SQLiteStatement stmt = db.compileStatement("UPDATE users SET field1=?, field2=?...");
stmt.bindString(1, "value1");
stmt.bindString(2, "value2");
stmt.execute();
Non, il y a non une telle syntaxe dans sqlite (postgres semble avoir une telle chose implémentée) - mais une meilleure utilisation:
UPDATE users SET firstname = 'Joe', lastname = 'value2', age = 50 WHERE id=12;