我需要知道,如果我能在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-小提琴
这也适用于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-服务器:
UPDATE users
SET
field1 = f1, field2 = f2, field3 = f3
FROM
( VALUES ('value1', 'value2', 'value3')
) AS x (f1, f2, f3)
WHERE condition ;
和@JackDouglas评论说,这部作品在甲骨文:
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语法
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
注意:请注意在UPDATE语法WHERE子句。 WHERE子句指定哪些记录或应该更新记录。 如果省略WHERE子句,所有记录都将被更新!
编辑:既然你似乎需要创建一个字符串,正常的方法来这样做安全是使用准备好的语句。
假设Java中,我们已经有了这个例子在计算器上:
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中没有这样的语法(postgress似乎有这样的事实现) -但更好的使用:
UPDATE users SET firstname = 'Joe', lastname = 'value2', age = 50 WHERE id=12;