當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。