在 MySQL 3.23 中,你可以使用 LIMIT # 来确保只有给定的记录行数目被更改。

如果一个 ORDER BY 子句被使用(从 MySQL 4.0.0 开始支持),记录行将以指定的次序被更新。这实际上只有连同 LIMIT 一起才有用。

从 MySQL 4.0.4 开始,你也可以执行一个包含多个表的 UPDATE or DELETE 的操作:

UPDATE t1,t2SET t1.price = t2.price

WHERE t1.id = t2.id;

delete FROM `t1` using `t1`

left join `t2` on t1.id= t2.id

where 1 and t2.id is null;

注意:多表 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 t1

WHERE name = ‘jcole’

ORDER BY id DESC

LIMIT 1

这将删除匹配 WHERE 子句的,并且最早被插入(通过 id 来确定)的记录行。

DELETE 语句的LIMIT rows 选项是 MySQL 特有的,它告诉服务器在控制权被返回到客户端之前可被删除的最大记录行数目。这可以用来确保一个特定的 DELETE 命令不会占用太长的时间。你可以简单地重复使用 DELETE 命令,直到被影响的记录行数目小于 LIMIT 值。

从 MySQL 4.0 开始,在 DELETE 语句中可以指定多个表,用以从一个表中删除依赖于多表中的特殊情况的记录行。然而,在一个多表删除中,不能使用 ORDER BY 或 LIMIT。

假设有两个表,tab1,tab2,分别有产品名称和产品价格,现在我想用tab2的价格替换tab1的价格,我写的语句是Update tab1 set tab1.产品价格=tab2.产品价格 where tab1.产品名称=tab2.产品名称

结果出现错误,提示为:列前缀 ‘tab2′ 与查询中所用的表名或别名不匹配。请问应该怎样写,

SQL语句是不支持多表同时更新的。

应该这样写

update tab1 set tab1.产品价格 = (select tab2.产品价格 from tab2 where tab2.产品名称 = tab1.产品名称) where tabl1.产品名称 in (select tab2.产品名称 from tab2)

后面的where tab1.产品名称 in (select tab2.产品名称 from tab2) 这句保证了如果tab1的产品在tab2没有记录时不会出错。

在 开发中,数据库来回换,而有些关键性的语法又各不相同,这是一件让开发人员很头痛的事情.本文总结了Update语句更新多表时在SQL Server,Oracle,MySQL三种数据库中的用法.我也试了SQLite数据库,都没成功,不知是不支持多表更新还是咋的.

在本例中:

我们要用表gdqlpj中的gqdltks,bztks字段数据去更新landleveldata中的同字段名的数据,条件是当landleveldata 中的GEO_Code字段值与gdqlpj中的lxqdm字段值相等时进行更新.

SQL Server语法:

UPDATE

{

table_name WITH ( < table_hint_limited > [ …n ] )

| view_name

| rowset_function_limited

}

SET

{ column_name = { expression | DEFAULT | NULL }

| @variable = expression

| @variable = column = expression } [ ,…n ]

{ { [ FROM { < table_source > } [ ,…n ] ]

[ WHERE

< search_condition > ] }

|

[ WHERE CURRENT OF

{ { [ GLOBAL ] cursor_name } | cursor_variable_name }

] }

[ OPTION ( < query_hint > [ ,…n ] ) ]

SQL Server示例:

update a

set a.gqdltks=b.gqdltks,a.bztks=b.bztks

from landleveldata a,gdqlpj b

where a.GEO_Code=b.lxqdm

Oracle语法:

UPDATE    updatedtable

SET (col_name1[,col_name2…])=

(SELECT    col_name1,[,col_name2…]

FROM    srctable [WHERE where_definition])

Oracel 示例:

update landleveldata a

set (a.gqdltks, a.bztks)=

(select b.gqdltks, b.bztks    from gdqlpj b

where a.GEO_Code=b.lxqdm)

MySQL语法:

UPDATE table_references

SET col_name1=expr1 [, col_name2=expr2 …]

[WHERE where_definition]

MySQL 示例:

update landleveldata a, gdqlpj b

set a.gqdltks= b.gqdltks,

a.bztks= b.bztks

where a.GEO_Code=b.lxqdm

mysql 联表删除limit_sql连表删除 | 深蓝的blog相关推荐

  1. mysql数据库重命名php_mysql基础:删除数据库,删除表,重命名表_MySQL

    bitsCN.com mysql基础:删除数据库,删除表,重命名表 ============删除数据库============= DROP DATABASE用于取消数据库中的所用表格和取消数据库.使用 ...

  2. linux中mysql如何删除库,Linux环境下MySQL基础命令(2)----查看、创建、删除库和表...

    案例二,查看数据库 MySQL是一套数据库管理系统,支持运行多个库,每个库相当于一个容器,存放着许多表.数据就存在这些表中,所以查看.创建.删除库和表,在工作中必不可少. 一,查看 1,查看当前服务器 ...

  3. mysql删除数据表show_数据库与表显示、创建、删除

    数据库与表显示.创建.删除 数据库显示 show databases; mysql> show databases; +--------------------+ | Database      ...

  4. mysql中如何删除多个表格_mysql怎么批量删除多个表?

    mysql批量删除多个表的方法:使用"DROP TABLE"语句,只要将表名依次写在后面,相互之间用逗号隔开即可:语法格式"DROP TABLE [IF EXISTS] ...

  5. mysql快速删除大表数据部分数据_mysql删除大表的部分数据

    mysql删除大表的部分数据 好久没写博客.最近项目要上线.下班时间还得陪着老妈.实在没时间更新. 今天有人提了一个问题,  www.2cto.com 一个表有1亿6000万的数据,有一个自增ID.最 ...

  6. mysql的删除命令+linux命令大全,Linux环境下MySQL基础命令----查看、创建、删除库和表...

    案例二,查看数据库 MySQL是一套数据库管理系统,支持运行多个库,每个库相当于一个容器,存放着许多表.数据就存在这些表中,所以查看.创建.删除库和表,在工作中必不可少. 一,查看 1,查看当前服务器 ...

  7. mysql中如何删除空记录表_mysql删除表中的记录

    大家都知道,在MySQL中删除一个表中的记录有两种方法,一种是DELETE FROM TABLENAME WHERE... , 还有一种是TRUNCATE TABLE TABLENAME. DELET ...

  8. mysql 两张大表关联_详解mysql生产环境如何快速有效的删除大表,附实验说明

    概述 我们很多时候都会去drop一些大表,特别是生产环境做操作时,这里主要提一些注意事项,仅供参考. 01 相关语法 1.删表 DROP TABLE SyntaxDROP [TEMPORARY] TA ...

  9. MySQL默认库可以删_个人总结:Sql(一:创建删除修改库表||附:mysql数据类型及默认值)...

    个人总结:Sql(一:创建&删除&修改库&表||附:mysql数据类型及默认值)createdatabasecreate tablealterdatabasealtertabl ...

最新文章

  1. 速度超快!字节跳动开源序列推理引擎LightSeq
  2. 编写安全的ASP代码
  3. JavaScript 工作原理之十一-渲染引擎及性能优化小技巧
  4. Atitit 软件架构方法的进化与演进cs bs soa roa  msa  attilax总结
  5. ztree添加自定义图标
  6. CIM系统与MES系统介绍
  7. JAVA开发的人力资源管理系统
  8. ​香农与信息论三大定律
  9. 3650m5设置u盘启动_联想启天M425台式机设置u盘启动两种模式(支持uefi/bios双启动)...
  10. android reset方法,Android factory reset 流程
  11. webp图片文件无需转换直接下载成JPG或者gif等其他格式的方法
  12. IDEA去掉SQL语句的黄色警告
  13. 深圳绿色建筑人才需求持续增长
  14. 汽车维修店如何挖掘潜在客户资源
  15. 基于GEE洪水发生前后的分析
  16. Nginx 教程(一)-- 工作原理及安装配置
  17. TOFEL托福经验贴
  18. 测试前如何进行配置项测试?
  19. 自动控制理论(7)——线性系统的稳态误差分析
  20. Android新版本特性以及注意事项

热门文章

  1. python更换国内源_一键更换国内云服务器Python pip镜像源至国内Pypi镜像源
  2. 是否需要配置环境变量,比如maven,jdk等
  3. OpenShift 4 之 Image Registry、Image 和 ImageStream 概念和相关操作
  4. cake-build -.Net Core 跨平台构建自动化系统
  5. (三)设置Jenkins为MLOps构建CI/CD管道
  6. Atata——C# Web测试自动化框架
  7. WPF——自动关闭无模式窗口
  8. 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第4天
  9. Visual Studio 2019 v16.4 Preview 2 发布
  10. odoo10参考系列--视图二(表单视图)