如何使用单个查询批量更新MySQL数据?
您可以使用CASE命令通过一个查询批量更新MySQL数据。语法如下-
update yourTableNameset 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)
以上是 如何使用单个查询批量更新MySQL数据? 的全部内容, 来源链接: utcz.com/z/327143.html