我试图在一个查询中为多行设置多列,但到目前为止没有成功.

我的桌子是这样的

表:用户

在此处输入图像描述

我想在user_id IN(3,4,5)上设置‘ext_id’,还想在同一行上设置ext_flag=Y和ADMIN_ROLE=ADMIN.

结果表如下所示 在此处输入图像描述

我的查询看起来像这样,但由于不熟悉SQL语法,我遇到了错误.

update user
set ext_flag = 'Y', admin_role = 'admin', ext_id = 
case 
when user_id = 2 then 345
when user_id = 4 then 456
when user_id = 5 then 789
end

我在使用多列的集合语法方面遇到了困难.

推荐答案

尝尝这个

 update user
 set ext_flag = 'Y', admin_role = 'admin', ext_id = 
 case 
 when user_id = 2 then 345
 when user_id = 4 then 456
 when user_id = 5 then 789
 end
 **WHERE user_id  in (2,4,5)**

Database相关问答推荐

存储具有公共链接但 ID 很长的用户文件是否安全?

即使将enable_seqscan设置为关闭,也未使用数组列上的 GIN 索引?

Sequel Pro / MAMP 在哪里存储本地数据库?

sql-dump 有什么用?

需要未提供的参数@ID?

Oracle SQL 开发人员中的 DB2 数据库

C# 连接到数据库并列出数据库

为什么数据库索引使用平衡树,而不是哈希表?

在 MySQL 中实现一对一关系时确定外键

mySQL 复制是否具有即时数据一致性?

Hibernate 的 MariaDB 方言类名称是什么?

SQL - 如何转置?

使用 PHP/PDO 判断数据库表是否存在

如何使用 Entity Framework CF 在父级之前删除子实体?

如何在 Google AppEngine 上实现自动增量

单元测试数据库

C# IEnumerator/yield struct 可能不好?

做或不做:将图像存储在数据库中

为什么 Rails 迁移在应用程序中定义外键而不在数据库中定义外键?

在 UI 中执行业务逻辑的单元测试数据库应用程序