如何将多条update语句合并为一条

需求:

如何将多条update语句合并为一条update语句:
如,update table1 set col=‘2012‘ where id=‘2014001‘
      update table1 set col=‘1009‘ where id=‘2014003‘
如何合并为一条?

在网上找了好久,总结了一个相对简单的语句(有些语句是函数语句,有点晕),如下:

  update table1 set col=(case id

  when ‘2014001‘ then ‘2012‘

  when ‘2014003‘ then ‘1009‘ end)

  where  id in(‘2014001‘,‘2014003‘)

这个还可以扩展为多个字段的,这个你自己去依葫芦画瓢了~

 

时间: 2024-11-05 18:46:29

如何将多条update语句合并为一条的相关文章

[转] git merge 将多个commit合并为一条之--squash 选项

[FROM] https://blog.csdn.net/themagickeyjianan/article/details/80333645 1.一般的做法(直接git merge) Git相对于CVS和SVN的一大好处就是merge非常方便,只要指出branch的名字就好了,如: $ git merge another $ git checkout another # modify, commit, modify, commit ... $ git checkout master $ git

mysql 同样内容的字段合并为一条的方法

从两个表中内联取出的数据,当中category_name字段有同样内容,想将具有同样内容的字段进行合并,将amount字段进行加法运算,变成下表中的内容 SELECT c.category_name, count(*) AS task_num, sum( t.amount ) AS amount_num FROM cs_witkey_tasks AS t INNER JOIN cs_witkey_category AS c ON t.category_id = c.cid GROUP BY c.

mysql 相同内容的字段合并为一条的方法

从两个表中内联取出的数据,其中category_name字段有相同内容,想将具有相同内容的字段进行合并,将amount字段进行加法运算,变成下表中的内容 SELECT c.category_name, count(*) AS task_num, sum( t.amount ) AS amount_num FROM cs_witkey_tasks AS t INNER JOIN cs_witkey_category AS c ON t.category_id = c.cid GROUP BY c.

执行一条sql语句update多条不同值的记录实现思路

如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?本文以一个示例向大家讲解下如何实现如标题所示的情况,有此需求的朋友可以了解下 通常情况下,我们会使用以下SQL语句来更新字段值: 复制代码 代码如下: UPDATE mytable SET myfield='value' WHERE other_field='other_value'; 但是,如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?举个例子,我的博客有三个分类目录(免费资源.教程指南.橱窗展示

执行一条sql语句update多条记录实现思路

执行一条sql语句update多条记录实现思路 如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?本文以一个示例向大家讲解下如何实现如标题所示的情况,有此需求的朋友可以了解下 通常情况下,我们会使用以下SQL语句来更新字段值: UPDATE mytable SET myfield='value' WHERE other_field='other_value'; 但是,如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?举个例子,我的博客有三个分类目录(免

MySQL update 语句与标准SQL不同的地方

[SQL标准中有一个叫同时执行的概念] 同时执行指的是在同一个子句中的各个部分的执行时机是不区分先后的,如下面的SQL语句 select abs(-1),abs(2); +---------+--------+ | abs(-1) | abs(2) | +---------+--------+ | 1 | 2 | +---------+--------+ 1 row in set (0.01 sec) 按SQL标准的说法 abs(-1) 与 abs(2) 这两个函数是"同时执行"的!

SQL 列转行,即多行合并成一条

需求:按照分组,将多条记录内容合并成一条,效果如下: 数据库示例: CREATE TABLE [t2]([NID] [bigint] NULL,[district] [nvarchar](255) NULL,[town] [nvarchar](255) NULL); insert into t2 values(1,'淮上区','曹老集镇'); insert into t2 values(2,'淮上区','淮滨街道'); insert into t2 values(3,'淮上区','梅桥乡');

mysql+mybatis 在mybatis一个标签中,执行多条sql语句

然后在mybatis映射文件中的标签中,一般不能执行多条sql,如下: <insert id="addUser" parameterType="User" > insert into t_users (name,password,phone) values (#{name}, #{password},#{phone}); insert into t_dep (depname) values (#{depname}) </insert> MyS

Oracle SQL语句优化34条

非常好用的SQL语句优化34条 1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基 础表.如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACL