Mysql也可以联合多表更新和删除
(节选自mysql手册)
多表更新
在 MySQL 3.23 中,你可以使用 LIMIT # 来确保只有给定的记录行数目被更改。
如果一个 ORDER BY 子句被使用(从 MySQL 4.0.0 开始支持),记录行将以指定的次序被更新。这实际上只有连同 LIMIT 一起才有用。
从 MySQL 4.0.4 开始,你也可以执行一个包含多个表的 UPDATE 的操作:
UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;
注意:多表 UPDATE 不可以使用 ORDER BY 或 LIMIT。
多表删除
第一个多表删除格式从 MySQL 4.0.0 开始被支持。第二个多表删除格式从 MySQL 4.0.2 开始被支持。
仅仅在 FROM 或 USING 子句 之前 列出的表中的匹配记录行被删除。效果就是,你要以从多个表中同时删 除记录行,并且同样可以有其它的表用于检索。
在表名后的 .* 仅仅是为了兼容 Access:
DELETE t1,t2 FROM t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.id
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 一起才有用。示例如下:
DELETE FROM somelog
WHERE user = 'jcole'
ORDER BY timestamp
LIMIT 1
这将删除匹配 WHERE 子句的,并且最早被插入(通过 timestamp 来确定)的记录行。
DELETE 语句的LIMIT rows 选项是 MySQL 特有的,它告诉服务器在控制权被返回到客户端之前可被删除的最大记 录行数目。这可以用来确保一个特定的 DELETE 命令不会占用太长的时间。你可以简单地重复使用 DELETE 命令,直到被影响的记录行数目小于 LIMIT 值。
从 MySQL 4.0 开始,在 DELETE 语句中可以指定多个表,用以从一个表中删除依赖于多表中的特殊情况 的记录行。然而,在一个多表删除中,不能使用 ORDER BY 或 LIMIT。
Mysql也可以联合多表更新和删除相关推荐
- python db.commit_python对MySQL进行数据的插入、更新和删除之后需要commit,数据库才会真的有数据操作。(待日后更新)...
今天在尝试用下面的python代码对MySQL进行数据的插入.更新和删除时, 突然发现代码执行成功, 通过代码查询也显示数据已经插入或更新, 但是当我在MySQL客户端通过SQL语句查询时, 数据库中 ...
- oracle删除库里的所有表,清空mysql指定库里全部表数据-自动删除所有表,有外键约束的表优先删除...
清空mysql指定库里所有表数据-自动删除所有表,有外键约束的表优先删除 由于要清空数据库数据 ,手动非常麻烦.网上找了一下,有一个Oracle的,参照它,在其上修改一下用于Mysql,把代码奉献如下 ...
- mysql连表删除语句_MySQL中联表更新与删除的语法介绍
前言 相信大家在日常使用mysql,可能会遇到需要同时更新两张表时,我会采用在同一个事务中使用2句sql语句分别进行更新.其实,这种需要发送2句sql语句的方法效率相对来说是比较低的,有没有只用1句s ...
- MySQL(九)插入、更新和删除
常用的SQL语句,除了select用于查询,还有insert.update.delete等. 一.insert insert:用来插入(或添加)行到数据库中,常见方式有以下几种: ①插入完整的行: ② ...
- mySQL教程 第5章 插入 更新与删除数据
第5章 插入 更新与删除数据 使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 ...
- 百亿级hive表更新与删除数据
文章目录 业务说明 1.1 表的结构 1.2 文件样例 2.1 将文件导入临时表并将标签串炸裂开 3.1 找到发生变化的标签(新增与删除) 4. 循环每一个分区执行 4.1 关联存量表,将新增与删除之 ...
- ubuntu mysql 更新_数据库应用(三): Ubuntu 下 MySQL添加、更新与删除数据
添加.更新与删除数据 1.添加数据 命令格式: INSERT|replace INTO 表名(字段名1,字段名2,--) VALUES(值1,值2,--), (值1,值2,--); 需要注意:使用in ...
- mysql插入删除_mysql插入、更新与删除
数据库增删改查都是要熟练掌握的. 这部分就来看看前面3个比较简单的部分,增,删,改. 插入数据 为表的所有字段插入数据 insert into table_name (column_list) val ...
- 如何规避MyBatis使用过程中带来的全表更新风险
作者:京东零售 贾玉西 一.前言 程序员A: MyBatis用过吧? 程序员B: 用过 程序员A: 好巧,我也用过,那你遇到过什么风险没?比如全表数据被更新或者删除了. 程序员B: 咔,还没遇到过,这 ...
最新文章
- E. coli Bacterial Assembly 大肠杆菌
- spring security源码分析之web包分析
- Forever让NodeJS应用后台执行
- 学习笔记整理之小实现
- 【Algorithm】冒泡排序
- 龙格库塔解一阶微分方程c语言,四阶龙格库塔法解微分方程
- docx 2003 的补丁
- python假设检验和区间估计_用 Python 实现常用的假设检验
- undertale人物_传说之下人物介绍
- A-Playing with Paper
- 编译原理基本定义(文法、算符文法、算符优先文法、算符优先关系表、算符优先分析过程)
- iOS开发:图标生成器Prepo 的使用,讲的明明白白
- Vue2 组件之间传值
- CSS 笔记(十二):预处理器 —— Less
- 专访:黑客段子手“呆子不开口”| 宅客故事
- python:tzinfo 对象
- 小学生学Arduino---------倒车指挥员
- 【已解决】【V1.0版本】如何彻底关闭Win10的自动更新并且随时可以恢复?
- 2G,3G与4G技术相关技术介绍
- 霍尔效应技术提供紧凑型电流测量传感器
热门文章
- 静态库的冲突 duplicate symbol
- python爬虫爬取页面源码在本页面展示
- 浏览器调试时控制台出现:Uncaught SyntaxError: Unexpected identifier
- sql一个表中两个字段合并求和
- Leetcode:convert_sorted_array_to_binary_search_tree
- [uva] 146 - ID Codes
- Java:Swing篇,实现JList、JTextArea的自动滚动,实时刷新功能
- hadoop-集群管理(3)——不常用参数
- linux架设subversion(svn)版本控制
- 在Python中写入文件时,权限被拒绝错误