mysql 批量 查询更新数据_如何使用单个查询批量更新MySQL数据?

您可以使用CASE命令通过一个查询批量更新MySQL数据。语法如下-update yourTableName

set yourUpdateColumnName = ( Case yourConditionColumnName WHEN Value1 THEN ‘’UpdatedValue’

WHEN Value2 THEN ‘UpdatedValue’

.

.

N

END)

where yourConditionColumnName IN(Value1,Value2,.....N);

为了理解上述概念,让我们创建一个表。创建表的查询如下-mysql> create table UpdateAllDemo

−> (

−> BookId int,

−> BookName varchar(200)

−> );

使用insert命令在表中插入一些记录。插入记录的查询如下-mysql> insert into UpdateAllDemo values(1000,'Introduction to C');

mysql> insert into UpdateAllDemo values(1001,'Introduction to Java');

使用select语句显示表中的所有记录。查询如下-mysql> select *from UpdateAllDemo;

以下是输出-+--------+----------------------+

| BookId | BookName             |

+--------+----------------------+

| 1000   | Introduction to C    |

| 1001   | Introduction to Java |

+--------+----------------------+

2 rows in set (0.00 sec)

现在,我们将进行批量更新,即更新值“ Introduction to C”的值为“ C in Depth”,以及

值“ Java简介”和值“深度Java”。

您可以如上 使用CASE命令。查询如下-mysql> update UpdateAllDemo

−> set BookName = (CASE BookId WHEN 1000 THEN 'C in Depth'

−> when 1001 THEN 'Java in Depth'

−> END)

−> Where BookId IN(1000,1001);

现在,您可以检查表中的值是否已更新,或者不使用select语句。

查询表中更新值的查询如下:mysql> select *from UpdateAllDemo;

以下是显示批量更新成功的输出-+--------+---------------+

| BookId | BookName      |

+--------+---------------+

| 1000   | C in Depth    |

| 1001   | Java in Depth |

+--------+---------------+

2 rows in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值