Mysql也可以联合多表更新和删除

转载 2006年06月08日 13:23:00
(节选自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联合多表更新和删除

多表更新 在 MySQL 3.23 中,你可以使用 LIMIT # 来确保只有给定的记录行数目被更改。  如果一个 ORDER BY 子句被使用(从 MySQL 4.0.0 开始支持),记录行...
  • scholar_man
  • scholar_man
  • 2015年07月11日 16:39
  • 1406

mybatis学习笔记(十一)多对多关联查询/级联操作

一对一和一对多的关联关系已经初步了解,接下来要看多对多的级联查询,由于之前的例子并不适合多对多,因此用学生和课程这个经典例子学习。...
  • oh_Mourinho
  • oh_Mourinho
  • 2016年07月12日 17:17
  • 2474

数据库__SQL的主键和外键约束_级联更新_级联删除

SQL的主键和外键的作用:    外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记录时...
  • u010003835
  • u010003835
  • 2015年11月25日 10:02
  • 3573

MySQL联合多表更新和删除

多表更新 在 MySQL 3.23 中,你可以使用 LIMIT # 来确保只有给定的记录行数目被更改。  如果一个 ORDER BY 子句被使用(从 MySQL 4.0.0 开始支持),记录行...
  • scholar_man
  • scholar_man
  • 2015年07月11日 16:39
  • 1406

MYSQL联合多表更新和删除

多表更新
  • letter_Believe
  • letter_Believe
  • 2017年07月04日 19:19
  • 94

Mysql数据库多表联合更新

有时数据库某些字段为字符串类型,并且内容比较长,由于字符串比较占存储空间,当数据比较多时也会影响查询效率,这时就可以把字符串移到另一个表中,并建立相应的编号,然后将字符串替换成这些int 类型的编号;...
  • u012843492
  • u012843492
  • 2016年05月22日 12:41
  • 241

SQL多表操作、插入、更新、删除(mysql)

1. 多表操作(1)伪集合并纵向叠加记录:select column1 from table1 union all select column2 from table2这里请注意: column1与c...
  • qq_16912257
  • qq_16912257
  • 2016年12月24日 23:10
  • 1150

MySQL数据库——‘多表’的基本操作(更新、删除、创建写入)

1.多表更新--基本格式 UPDATE table_references SET col_name1 = {expr1|DEFAULT} [,col_name2 = {expr2|DEFAULT}]....
  • peng_666666
  • peng_666666
  • 2017年02月21日 15:38
  • 318

Mysql跨表更新,删除 多表update,delete

1.多表更新       假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price;另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段P...
  • u014508939
  • u014508939
  • 2017年07月03日 11:43
  • 396

mysql多表联合查询

  • 2013年11月04日 22:36
  • 55KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mysql也可以联合多表更新和删除
举报原因:
原因补充:

(最多只允许输入30个字)