MySQL UPDATE 查询示例
⚡ 智能摘要
MySQL UPDATE 查询用于修改表中的现有行,可以在单个语句中更改一个或多个字段。本资源解释了 UPDATE 语法、WHERE 筛选条件、成员表的示例以及防止意外批量更新的安全措施。

什么是 UPDATE 查询?
此 更新 MySQL UPDATE 命令用于修改表中的行。UPDATE 查询可以同时更改单个字段或多个字段。它还可以用于更新…… MySQL 表格中的值取自另一个表格。
为什么要使用 UPDATE 查询? MySQL?
数据很少能永远保持正确。会员的电话号码会更改,价格会变动,订单状态也会从待处理变为已发货。删除旧行并插入新行会破坏主键和所有外键引用。UPDATE 语句会就地修改行,因此标识和关联关系不会因更改而改变。
在以下情况下,UPDATE 查询是正确的选择:
- 数值有误或已过时: 更正拼写错误的姓名或刷新联系电话,而无需更改记录的其他部分。
- 状态必须向前推进: 通过重写一列,将订单状态从“待处理”更改为“已发货”。
- 多个领域同时发生变化: 一条语句可以在同一次传递中设置新名称和新地址。
- 需要进行大规模修正: WHERE 子句如果匹配多行,则会对所有行一次性应用相同的编辑。
因为没有 WHERE 子句的 UPDATE 操作会重写每一行,所以过滤器可以将例行更正与意外覆盖区分开来。
MySQL 更新命令语法
确定了目标之后,下一步就是语法。UPDATE 查询的基本形式如下: MySQL 如下所示。
UPDATE `table_name` SET `column_name` = 'new_value' [WHERE condition];
位置:
- 更新 `table_name` 是告诉的命令 MySQL 修改表格中的数据。
- 设置 `column_name` = 'new_value' 指定要受 UPDATE 查询影响的字段的名称和值。设置值时,字符串数据类型必须用单引号括起来。数值不需要引号。日期值必须用单引号括起来,并采用“YYYY-MM-DD”格式。
- [WHERE 条件] 此选项为可选参数,可用于应用筛选器,限制受 UPDATE 查询影响的行数。完整的选项列表请参见[此处]。 MySQL 更新声明手册.
现在让我们来看一个更新成员表中数据的实际例子。
更新 MySQL 例如:
假设会员编号为 1 和 2 的会员的记录需要进行以下更新。
| 会员号码 | 需要更新 |
|---|---|
| 1 | 将联系电话从999更改为0759 253 532 |
| 2 | 将姓名更改为 Janet Smith Jones,并将实际地址更新为 Melrose 123。 |
更新单列
我们从会员编号 1 开始。在进行任何更改之前,让我们先检索该记录。
SELECT * FROM `members` WHERE `membership_number` = 1;
执行上述脚本将得到以下结果。
| 会员号码 | 全名 | 性别 | 出生日期 | 实际地址 | 邮政地址 | 联系电话 | 电子邮件 |
|---|---|---|---|---|---|---|---|
| 1 | 珍妮特琼斯 | (女) | 21-07-1980 | 第一街 4 号地块 | 私人包 | 999 | janetjones@yagoo.cm |
现在让我们使用下面显示的脚本来更新联系电话。
UPDATE `members` SET `contact_number` = '0759 253 532' WHERE `membership_number` = 1;
执行上述脚本会将会员编号为 1 的联系电话从 999 更改为 0759 253 532。重新运行 SELECT 语句会确认新值。
| 会员号码 | 全名 | 性别 | 出生日期 | 实际地址 | 邮政地址 | 联系电话 | 电子邮件 |
|---|---|---|---|---|---|---|---|
| 1 | 珍妮特琼斯 | (女) | 21-07-1980 | 第一街 4 号地块 | 私人包 | 0759 253 532 | janetjones@yagoo.cm |
更新多列
会员编号 2 需要同时修改两个字段。这是更新前的记录。
| 会员号码 | 全名 | 性别 | 出生日期 | 实际地址 | 邮政地址 | 联系电话 | 电子邮件 |
|---|---|---|---|---|---|---|---|
| 2 | 史密斯·琼斯 | (女) | 23-06-1980 | 公园街 | 无 | 无 | jj@fstreet.com |
以下脚本使用一条语句更新两列数据。请注意,两个赋值语句之间用逗号分隔。
UPDATE `members` SET `full_names` = 'Janet Smith Jones', `physical_address` = 'Melrose 123' WHERE `membership_number` = 2;
执行上述脚本会将会员编号 2 的全名更新为 Janet Smith Jones,并将实际地址更新为 Melrose 123。
| 会员号码 | 全名 | 性别 | 出生日期 | 实际地址 | 邮政地址 | 联系电话 | 电子邮件 |
|---|---|---|---|---|---|---|---|
| 2 | 珍妮特·史密斯·琼斯 | (女) | 23-06-1980 | 梅尔罗斯 123 | 无 | 无 | jj@fstreet.com |
💡提示: “”WHERE 子句“”参数限制了受 UPDATE 查询影响的行数。如果省略此参数,则表中的每一行都会被重写。
