当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MySQL UPDATE用法及代码示例


UPDATE 语句用于修改表中的现有记录。

警告

对于要更新其值的列,您需要 UPDATE 权限。

用法

UPDATE table_name
SET column1 = value1, column2 = value2 ...
WHERE condition;

例子

请考虑下表,了解一些学生是否持有驾驶执照:

student_id

full_name

年龄

has_license

1

天空镇

17

0

2

本·戴维斯

19

1

3

特拉维斯·苹果

18

0

4

亚瑟·大卫

16

0

5

本杰明镇

17

1

可以使用此处的代码创建上述示例表。

单列更新

要将 Sky Towner 的年龄更新为 18,因为今天是他的生日:

UPDATE drivers_license
SET age = 18
WHERE student_id = 1;



Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

这里的 WHERE 子句指定我们只想更新 Sky Towner 的年龄。

我们可以看到 Sky Towner 的年龄现在更新为 18

SELECT *
FROM drivers_license;



+------------+---------------+------+-------------+
| student_id | full_name     | age  | has_license |
+------------+---------------+------+-------------+
|          1 | Sky Towner    |   18 |           0 |
|          2 | Ben Davis     |   19 |           1 |
|          3 | Travis Apple  |   18 |           0 |
|          4 | Arthur David  |   16 |           0 |
|          5 | Benjamin Town |   17 |           1 |
+------------+---------------+------+-------------+
警告

每当您在表上执行更新时都要小心。如果我们忘记在上面的示例中添加 WHERE 子句,则表中所有学生的年龄将设置为 18

将所有学生的年龄设置为18

UPDATE drivers_license
SET age = 18;
SELECT *
FROM drivers_license;



+------------+---------------+------+-------------+
| student_id | full_name     | age  | has_license |
+------------+---------------+------+-------------+
|          1 | Sky Towner    |   18 |           0 |
|          2 | Ben Davis     |   18 |           1 |
|          3 | Travis Apple  |   18 |           0 |
|          4 | Arthur David  |   18 |           0 |
|          5 | Benjamin Town |   18 |           1 |
+------------+---------------+------+-------------+

多列更新

要更新 student_id=1agehas_license 列值:

UPDATE drivers_license
SET age = 18, has_license = TRUE
WHERE student_id = 1;
SELECT *
FROM drivers_license;



+------------+---------------+------+-------------+
| student_id | full_name     | age  | has_license |
+------------+---------------+------+-------------+
|          1 | Sky Towner    |   18 |           1 |
|          2 | Ben Davis     |   19 |           1 |
|          3 | Travis Apple  |   18 |           0 |
|          4 | Arthur David  |   16 |           0 |
|          5 | Benjamin Town |   17 |           1 |
+------------+---------------+------+-------------+

如上所示,通过指定逗号分隔的 column=value 对来执行多列更新。

根据当前值更新

要通过将当前值增加 1 来更新学生 1 的 age

UPDATE drivers_license
SET age = age + 1WHERE student_id = 1;
SELECT *
FROM drivers_license;



+------------+---------------+------+-------------+
| student_id | full_name     | age  | has_license |
+------------+---------------+------+-------------+
|          1 | Sky Towner    |   18 |           0 |
|          2 | Ben Davis     |   19 |           1 |
|          3 | Travis Apple  |   18 |           0 |
|          4 | Arthur David  |   16 |           0 |
|          5 | Benjamin Town |   17 |           1 |
+------------+---------------+------+-------------+

请注意, Sky Townerage 已从 17 增加到 18 1

相关用法


注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | UPDATE。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。