mysql批量更新、多表更新、多表删除_MySQL
本节主要内容:
mysql的批量更新、多表更新、多表删除
一,批量更新:
where tepoi.pid=pinf.dmgis_id and tepoi.pid>10000;
假设有表a,b,其结构为:
update a inner join b on a.id=b.id set
update tableA inner join tableB on tableA.FieldA=tableB.FieldB(update中使用inner join)
set
tableA.字段=值,
tableB.字段=值
二,多表更新
在 MySQL 3.23 中,你可以使用 LIMIT # 来确保只有给定的记录行数目被更改。
如果一个 ORDER BY 子句被使用(从 MySQL 4.0.0 开始支持),记录行将以指定的次序被更新。这实际上只有连同 LIMIT 一起才有用。
从 MySQL 4.0.4 开始,你也可以执行一个包含多个表的 UPDATE 的操作:
WHERE items.id=month.id;
注意:多表 UPDATE 不可以使用 ORDER BY 或 LIMIT。
三,多表删除
第一个多表删除格式从 MySQL 4.0.0 开始被支持。第二个多表删除格式从 MySQL 4.0.2 开始被支持。
仅仅在 FROM 或 USING 子句 之前 列出的表中的匹配记录行被删除。
要以从多个表中同时删除记录行,并且同样可以有其它的表用于检索。
在表名后的 .* 仅仅是为了兼容 Access:
or
DELETE FROM t1,t2 USING t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.id
以上仅仅从 t1 和 t2 表中删除匹配的记录行。
如果一个 ORDER BY 子句被使用(从 MySQL 4.0.0 开始支持), 记录行将以指定的次序删除。
这实际上只有连同 LIMIT 一起才有用。
例子:
WHERE user = 'jcole'
ORDER BY timestamp
LIMIT 1
将删除匹配 WHERE 子句的,并且最早被插入(通过 timestamp 来确定)的记录行。
DELETE 语句的LIMIT rows 选项是 MySQL 特有的,它告诉服务器在控制权被返回到客户端之前可被删除的最大记录行数目。
这可以用来确保一个特定的 DELETE 命令不会占用太长的时间。
可以简单地重复使用 DELETE 命令,直到被影响的记录行数目小于 LIMIT 值。
说明:
从 MySQL 4.0 开始,在 DELETE 语句中可以指定多个表,用以从一个表中删除依赖于多表中的特殊情况的记录行。
然而,在一个多表删除中,不能使用 ORDER BY 或 LIMIT。
本文原始链接:http://www.jbxue.com/db/13130.html
推荐阅读
-
MySql删除和更新操作对性能有影响吗
-
MySQL入门(四) 数据表的数据插入、更新、删除
-
PHP如何批量更新MYSQL中的数据
-
(MariaDB/MySQL)之DML(2):数据更新、删除
-
mysql 批量删除/更新数据报错 you can‘t specify target / every derrived table must / you are using safe update
-
MySQL----MySQL数据库入门----第三章 添加、更新与删除数据
-
MySql删除和更新操作对性能有影响吗
-
实操MySQL+PostgreSQL批量插入更新insertOrUpdate
-
Oracle中多表关联批量插入批量更新与批量删除操作
-
MySQL从删库到跑路(六)——SQL插入、更新、删除操作