MySQL 常用的UPDATE操作
来源:互联网 发布:如何查看浏览器端口 编辑:程序博客网 时间:2024/06/05 05:03
标签:UPDATE
概述
测试环境:mysql 5.6.21
步骤
创建测试表
CREATE TABLE `product` ( `proID` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品表主键', `price` decimal(10,2) NOT NULL COMMENT '商品价格', `type` int(11) NOT NULL COMMENT '商品类别(0生鲜,1食品,2生活)', `dtime` datetime NOT NULL COMMENT '创建时间', PRIMARY KEY (`proID`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='商品表';CREATE TABLE `producttype` ( `ID` int(11) NOT NULL COMMENT '商品类别(0生鲜,1食品,2生活)', `amount` int(11) COMMENT '每种类别商品总金额', UNIQUE KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品类别资金汇总表'
插入测试数据
INSERT INTO product(price,type,dtime) VALUES(10.00,0,now()),(10.00,1,now()),(10.00,1,now()),(20.00,2,now()),(30.00,3,now());INSERT INTO producttype(ID) VALUES(1),(2),(3);
SELECT * FROM product;SELECT * FROM producttype;
单表更新操作
UPDATE productSET price='20.00',type=0 WHERE proID=2;
关联更新操作
UPDATE producttype,productSET producttype.amount=product.pricewhere product.TYPE = producttype.ID AND product.TYPE=1;
1.查询所有字段
INSERT INTO producttype(ID) VALUES(4);
UPDATE producttypeSET producttype.amount= (SELECT ifnull(SUM(product.price),0.00) FROM product WHERE product.TYPE = producttype.ID GROUP BY product.TYPE);
注意:大家注意看到rows matched:4,表示符合条件的记录是4条,实际更新了三条,关联语句默认不去判断里面的关联的实际行。
2.只查询需要更新的字段
UPDATE producttypeSET amount=null;
UPDATE producttype,product SET producttype.amount= (SELECT ifnull(SUM(product.price),0.00) FROM product WHERE product.TYPE = producttype.ID GROUP BY product.TYPE) where product.TYPE = producttype.ID;
改用下面这种方法:Rows matched:3,查询到了符合条件的行是3行,没有查询无关联的行。
总结
mysql的update的关联操作在5.6中后面不能直接接FROM语句,只能UPDATE 所有的连接表然后WHERE,如果之前有事情其它数据库产品的习惯在这里要注意了。
文章如果对大家有帮助,请帮忙推荐,谢谢!!!
备注:
作者:pursuer.chen
博客:http://www.cnblogs.com/chenmh
本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接,否则保留追究责任的权利。
《欢迎交流讨论》
---恢复内容结束---
0 0
- MySQL 常用的UPDATE操作
- mysql执行包括多个表的UPDATE操作
- mybatis批量执行mysql的update操作
- mysql 常用update语句
- mysql update,insert常用
- mysql的常用操作
- MySQL的常用操作
- mysql 的 常用操作
- mysql的常用操作
- MySQL的常用操作
- MySQL的常用操作
- mysql常用的操作
- MYSQL 的常用操作
- MySQL的常用操作
- MySQL的常用操作
- MySql的常用操作
- mysql 操作总结--UPDATE
- mysql update操作
- Linux 配置YUM
- MySQL 启动服务报错解决方案
- 七步配置phonegap+cordova+ionic开发环境
- Mysql 触发器
- MySQL 忘记root密码解决办法
- MySQL 常用的UPDATE操作
- MySQL 清空慢查询文件
- MySQL 远程连接(federated存储引擎)
- MySQL Tomcat搭建
- Linux 服务器监控
- Linux 查找已安装软件的方法
- linux 使用fdisk分区扩容
- Linux 挂载管理
- C++ 类的静态成员详细讲解