小编典典

SQLite中的UPDATE语法

sql

我需要知道是否可以在UPDATE语句中执行此操作:

UPDATE users SET ('field1', 'field2', 'field3') 
VALUES ('value1', 'value2', 'value3');

或类似的语法。我正在使用SQLite。

笔记:

没有人理解我,我只想知道是否可以将单独的字段设置为单独的值。就这样。


阅读 176

收藏
2021-03-17

共1个答案

小编典典

有一种(标准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 ;
2021-03-17