UPDATE syntax in SQLite(SQLite 中的更新语法)
问题描述
我需要知道是否可以在 UPDATE 语句中执行此操作:
I need to know if I can do this in an UPDATE statement:
UPDATE users SET ('field1', 'field2', 'field3')
VALUES ('value1', 'value2', 'value3');
或类似的语法.我正在使用 SQLite.
Or similar syntax. I'm using SQLite.
注意:
没有人理解我,我只想知道是否可以将单独的字段设置为单独的值.就是这样.
Nobody understands me, I just want to know if it is possible to SET separate fields to separate values. That's all.
推荐答案
有一个(标准 SQL)语法与您提出的类似,但据我所知,只有 Postgres 实现了它:
There is a (standard SQL) syntax that is similar to what you propose but as far as I know, only Postgres has implemented it:
UPDATE users
SET (field1, field2, field3)
= ('value1', 'value2', 'value3')
WHERE some_condition ;
测试(针对异教徒):SQL-Fiddle
Tested (for the infidels) in: SQL-Fiddle
这也适用于 Postgres:
This also works in 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:
This works in Postgres and SQL-Server:
UPDATE users
SET
field1 = f1, field2 = f2, field3 = f3
FROM
( VALUES ('value1', 'value2', 'value3')
) AS x (f1, f2, f3)
WHERE condition ;
<小时>
正如@JackDouglas 评论的那样,这适用于甲骨文:
and as @JackDouglas commented, this works in Oracle:
UPDATE users
SET (field1, field2, field3)
= ( SELECT 'value1', 'value2', 'value3' FROM dual )
WHERE condition ;
这篇关于SQLite 中的更新语法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:SQLite 中的更新语法
基础教程推荐
- SQL:使用来自具有相同列名的两个表中的数据... 2021-01-01
- SSMS 中的权限问题:“对象 'extended_properties'、数据库 'mssqlsystem_resource'、... 错误 229)上的 SELECT 权限被拒绝" 2022-01-01
- 如何使用 mysql.connector 禁用查询缓存 2022-01-01
- 是否可以执行按位分组功能? 2021-01-01
- 在 SQL 中连接多个表 2021-01-01
- SQL Server 实例在登录协商期间返回无效或不受支持的协议版本 2021-01-01
- 将 SQL Server DateTime 列迁移到 DateTimeOffset 2021-01-01
- 需要 MySQL 5.1 中的抽象触发器来更新审计日志 2021-01-01
- 无法解决整理冲突 2021-01-01
- SQL 效率:WHERE IN 子查询 vs. JOIN 然后 GROUP 2021-01-01
