建站软件 优化软件 编程软件 网页辅助 站群程序 网站程序 图像处理 资源教程 字体下载 推荐软件


您的位置:首页 > PHP学习 > mysql实现多表查询、删除、更新

mysql实现多表查询、删除、更新

时间:2015-05-18 09:44:53  来源:免费模板网 作者:风雪 阅读次数 tagsmysql运用

mysql里面的基础,多表联合查询,删除,更新的sql语句

 代码如下:

  1. SELECT cat.`name` , class.`title` 
  2. FROM `cat` , `class` 
  3. WHERE cat.`id` = class.`cat` 
  4. AND cat.`id` =2 
  5. LIMIT 0 , 30 
  6. DELETE cat, class FROM cat, class WHERE cat.`id`=class.`cat` AND cat.`id`=1 

多表更新:在 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 一起才有用,示例如下:

  1. DELETE FROM somelog 
  2. WHERE user = ‘jcole’ 
  3. ORDER BY timestamp 
  4. LIMIT 1  

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

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

本文地址:https://www.freemoban.com/php/2015/0518/1878.html

猜你喜欢
栏目推荐
模板推荐

Copyright:www.freemoban.com 免费模板网 All Rights Reserved 网站备案:辽ICP备19014872号-2   辽公网安备 21010602000376号  辽公网安备:42900402000182号

免责声明:本站部分资源来自互联网收集,版权归原创者所有,如果侵犯了你的权益,我们会及时删除侵权内容,联系QQ:1615187561 谢谢合作!