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批量update操作时出现锁表
https://www.cnblogs.com/wodebudong/articles/7976474.html 最近遇到一件锁表的情况,发现更新的语句where检索的字段,没有建索引,且是批量操作的 ...
- mysql批量导出单结构与结构数据表脚本
由于一个库里面不需要导出全部, 只需要导出一部分指定的数据表结构与数据 那么就写了一个比较简单而且为了能偷懒的小shell #!/bin/bash #************************* ...
- Mysql 批量更新update的表与表之间操作
Mysql 批量更新update的表与表之间操作 一.方法一 使用User2表数据更新User表: update User as a ,User2 as b set a.role_id=b.set_v ...
- SQL批量更新 关系表更新
很多人在做数据的批量更新时..如果更新的内容是从其他表查出来的..很容易这么写.. UPDATE TABLE1 SET COLUMN1=(SELECT SUM(SOMETHING) FROM TABL ...
- SQL 将2张不相关的表拼接成2列,批量更新至另一张表
update SO_Master set LotteryNo=t2.LotteryNo,UpdateTime=GETDATE() --select sm.LotteryNo,sm.SysNo,t2.L ...
- Mysql跨表更新 多表update sql语句总结
Mysql跨表更新一直是大家所关心的话题,本文介绍mysql多表 update在实践中几种不同的写法 假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price:另外一张表是P ...
- mysql 去重,跨表更新,跨表删除
一.去重 1.查询出重复的记录 CREATE TABLE push_log_full_2013_10_30_tmp SELECT * FROM `push_log_full` WHERE time B ...
- mySQL:两表更新(用一个表更新另一个表)的SQL语句
用一个表中的字段去更新另外一个表中的字段, MySQL 中有相应的 update 语句来支持,不过这个 update 语法有些特殊.看一个例子就明白了. create table student ( ...
- mysql insert插入时实现如果数据表中主键重复则更新,没有重复则插入的四种方法
[CSDN下载] Powerdesigner 设计主键code不能重复等问题 [CSDN博客] Oracle中用一个序列给两个表创建主键自增功能的后果 [CSDN博客] MySQL自增主键删除后重复问 ...
随机推荐
- MySQL(5):数据表操作
表名的前缀: 两个student表,为了区分相同逻辑表名的不同应用,给逻辑表名,增加前缀 //学生管理 create table info_student ( name varchar(20), st ...
- volley框架详解
Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Uni ...
- GCC生成的汇编代码
假设我们写了一个C代码文件 code.c包含下面代码: int accum = 0; int sum(int x, int y){ int t = x + y; accum += t; return ...
- RPM的基础命令/yum基本命令
rpm的使用方式非常简单,常用的一些命令如下: 安装软件:rpm -ivh *.rpm 卸载软件:rpm -e 软件名 升级形式安装:rpm -U *.rpm 常用参数: -v 显示详细信息 -h 显 ...
- Lucene 索引功能
Lucene 数据建模 基本概念 文档(doc): 文档是 Lucene 索引和搜索的原子单元,文档是一个包含多个域的容器. 域(field): 域包含“真正的”被搜索的内容,每一个域都有一个标识名称 ...
- WPF_X命名空间
x名称空间映射的是http://schemas.microsoft.com/winfx/2006/xaml,也称为"XAML名称空间"
- 【二分答案+贪心】解决“最小值最大”问题(UVa 12124 - Assemble)
Problem A - Assemble Time limit: 2 seconds Recently your team noticed that the computer you use to p ...
- Linux下root密码忘记的解决办法
{启动方式} ========================================================================== 一. lilo 1. 在出现 lil ...
- 为ubuntu只带的network-manager添加latp/ipsec VPN
sudo apt-add-repository ppa:seriy-pr/network-manager-l2tp sudo apt-get update sudo apt-get install n ...
- adb uninstall卸载apk 命令后跟的是包的名称
昨天在使用adb卸载程序,结果死活卸载不了.我输入的命令和系统提示如下: arthur@arthur-laptop:~$ adb uninstall com.hase.bclm.client-2.ap ...