MySQL UPDATE语句
时间:2019-02-04 12:52:25 来源:igfitidea点击:
MySQL UPDATE语句用于更新MySQL数据库表中的记录。
Mysql UPDATE语法
UPDATE语句有3种语法。
- 最简单的:
UPDATE table SET column1 = expression1, column2 = expression2, ... [WHERE conditions];
MySQL UPDATE语句的完整语法:
UPDATE [ LOW_PRIORITY ] [ IGNORE ] table SET column1 = expression1, column2 = expression2, ... [WHERE conditions] [ORDER BY expression [ ASC | DESC ]] [LIMIT number_rows];
- 使用另一个表的数据来更新一个表,UPDATE语句的语法为:
UPDATE table1 SET column1 = (SELECT expression1 FROM table2 WHERE conditions) [WHERE conditions];
- 使用MySQL UPDATE语句同时更新多个表:
UPDATE table1, table2, ... SET column1 = expression1, column2 = expression2, ... WHERE table1.column = table2.column AND conditions;
参数 | 说明 |
---|---|
LOW_PRIORITY | 可选的。更新将被延迟,直到没有进程从表中读取数据。LOW_PRIORITY可以与用表级锁的MyISAM、内存和合并表一起使用。 |
IGNORE | 可选的。忽略更新期间遇到的所有错误。如果对某一行进行更新时导致违背主键或唯一索引规则,则不会对该行进行更新。 |
column1, column2 | 要更新的列。 |
expression1,expression2 | 将expression1的值分配给column1,将expression2的值分配给column2,依此类推。 |
WHERE conditions | 可选的。执行更新时必须满足的条件。 |
ORDER BY expression | 可选的。当更新的记录数量有限制时,可以对记录进行适当排序。和LIMIT结合使用。 |
LIMIT number_rows | 可选的。控制要更新的最大记录数。 |
Mysql UPDATE语句示例
示例-更新1个列(字段)
UPDATE customers SET last_name = 'Anderson' WHERE customer_id = 5000;
将客户表中customer_id为5000的last_name更新为“ Anderson” 。
示例-更新多列
UPDATE customers SET state = 'California', customer_rep = 32 WHERE customer_id > 100;
当要更新多个字段时,用逗号来分隔列/值对。
将customer_id大于100的客户所在州 state 改为'California',customer_rep改为32。
示例-使用另一个表的数据来更新表
UPDATE customers SET city = (SELECT city FROM suppliers WHERE suppliers.supplier_name = customers.customer_name) WHERE customer_id > 2000;
这个更新例子只更新customer_id大于2000的所有记录的customers表。
当供应商表中的supplier_name与客户表中的customer_name匹配时,将供应商表中的city复制到客户表中的city字段。
示例-更新多个表的数据
UPDATE customers, suppliers SET customers.city = suppliers.city WHERE customers.customer_id = suppliers.supplier_id;
这个示例将把suppliers表中的city字段更新customers表中,其中customer_id与supplier_id要相同。