现在有与 teachers 表拥有相同结构和数据的 teachers_bkp 表。现在要将 teachers 表中所有 age(年龄) 小于 20 岁老师的 age 修改为 21 岁,代码如下:
UPDATE teachers
SET age = 21
WHERE id IN (
SELECT id
FROM teachers_bkp
WHERE age < 20
);
mysql> UPDATE teachers
-> SET age = 21
-> WHERE id IN (
-> SELECT id
-> FROM teachers_bkp
-> WHERE age < 20
-> );
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> SELECT * FROM teachers;
+----+------------------+---------------------------+-----+---------+
| id | name | email | age | country |
+----+------------------+---------------------------+-----+---------+
| 1 | Eastern Heretic | eastern.heretic@gmail.com | 20 | CN |
| 2 | Northern Beggar | northern.beggar@qq.com | 21 | CN |
| 3 | Western Venom | western.venom@163.com | 28 | USA |
| 4 | Southern Emperor | southern.emperor@qq.com | 21 | CN |
| 5 | Linghu Chong | NULL | 21 | CN |
+----+------------------+---------------------------+-----+---------+
5 rows in set (0.01 sec)
UPDATE table_name SET column_name = new_value
WHERE column_name OPERATOR
(SELECT column_name
FROM table_name [WHERE] )
现在有与 courses 表拥有相同结构和数据的 courses_bkp 表。现在要将 courses 表中所有 student_number(学生人数) 大于等于 200 课程的 student_number 修改为 100。