如何在 MySQL 中使用单个 WHERE 子句更新多行?
对此,你可以使用 MySQL IN()。首先让我们创建一个 -
mysql> create table DemoTable1420 -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> FirstName varchar(20), -> LastName varchar(20), -> Age int -> ); Query OK, 0 rows affected (1.12 sec)
使用 insert 在表中插入一些记录 -
mysql> insert into DemoTable1420(FirstName,LastName,Age) values('Chris','Brown',23);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1420(FirstName,LastName,Age) values('David','Miller',22);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable1420(FirstName,LastName,Age) values('John','Smith',24);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1420(FirstName,LastName,Age) values('John','Doe',21);
Query OK, 1 row affected (0.43 sec)
mysql> insert into DemoTable1420(FirstName,LastName,Age) values('Adam','Smith',25);
Query OK, 1 row affected (0.18 sec)使用 select 显示表中的所有记录 -
mysql> select * from DemoTable1420;
将产生以下输出 -
+----+-----------+----------+------+ | Id | FirstName | LastName | Age | +----+-----------+----------+------+ | 1 | Chris | Brown | 23 | | 2 | David | Miller | 22 | | 3 | John | Smith | 24 | | 4 | John | Doe | 21 | | 5 | Adam | Smith | 25 | +----+-----------+----------+------+ 5 rows in set (0.00 sec)
下面的查询使用单个 where 子句更新多行 -
mysql> update DemoTable1420 -> set FirstName='Carol',LastName='Taylor' -> where Id IN(1,3,4,5); Query OK, 4 rows affected (0.42 sec) Rows matched: 4 Changed: 4 Warnings: 0
让我们再次检查表记录 -
mysql> select * from DemoTable1420;
将产生以下输出 -
+----+-----------+----------+------+ | Id | FirstName | LastName | Age | +----+-----------+----------+------+ | 1 | Carol | Taylor | 23 | | 2 | David | Miller | 22 | | 3 | Carol | Taylor | 24 | | 4 | Carol | Taylor | 21 | | 5 | Carol | Taylor | 25 | +----+-----------+----------+------+ 5 rows in set (0.00 sec)
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP