mysql 在update中实现子查询的方式
本文转自:91博客;原文地址:http://www.9191boke.com/644523640.html
当使用mysql条件更新时--最先让人想到的写法
UPDATE buyer SET is_seller=1 WHERE uid IN (SELECT uid FROM seller)
此语句是错误的,会报错 You can't specify target table 'xxx' for update in FROM
这是因为:
mysql的update的一些特点
1、update 时,更新的表不能在set和where中用于子查询;
2、update 时,可以对多个表进行更新(sqlserver不行);
如:update ta a,tb b set a.Bid=b.id ,b.Aid=a.id;
3、update 后面可以做任意的查询,这个作用等同于from;
正确的方式是,例:
简单的更新:
UPDATE `roles_permissions` a SET a.roles_id=89 WHERE a.`roles_name`='0|||管理员'
较为复杂的更新:
例1:
UPDATE order_mall a,(SELECT order_mall.id FROM `order_mall`,`order_goods` WHERE order_mall.`id`=order_goods.`order_id` AND order_goods.order_status=8 AND order_goods.order_goods_type=3) b
SET a.`status`=4
WHERE a.id=b.id
例2:
UPDATE `core_user` a,(SELECT message_push_conf.user_id,message_push_conf.`open_push` FROM `message_push_conf`) b
SET a.`switch_push`=b.open_push
WHERE a.id=b.user_id
联表更新示例:
UPDATE encrypt_user e , user_auth_base u SET account_cid_md5=MD5(CONCAT(e.account,UPPER(u.id_number))) WHERE e.user_id=u.user_id
相关文章
- JavaWeb-SpringBoot_使用MySQL数据库实现用户管理_demo
- 创建function实现hive表结果导出到mysql
- Mac Pro 解压安装MySQL二进制分发版 mysql-5.6.30-osx10.11-x86_64.tar.gz(不是dmg的)
- 磁盘爆满导致MySQL无法启动:Disk is full writing './mysql-bin.~rec~' (Errcode: 28). Waiting for someone to free space...
- php中mysql数据库异步查询实现
- 【MySql】mysql 慢日志查询工具之mysqldumpslow
- 【MySql】mysql 字段个数的限制
- Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
- Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
- Mysql主从同步的实现原理与配置实战
- 前端页面展示MySQL数据并实现前后端互动
- Mysql主从配置,实现读写分离
- MYSQL随机抽取查询 MySQL Order By Rand()效率问题
- 【转】Mysql 间隙锁原理,以及Repeatable Read隔离级别下可以防止幻读原理(百度)
- 使用mysql-connector-python操作MYSQL数据库
- 大叔经验分享(96)docker启动MySQL报错
- mysql 主主复制(双主复制)+ 配置KEEPALIVED实现热备
- python中实现mysql连接池
- MySQL 无法满足查询性能?北明天时选择 TDengine 实现热网监控和能源分析
- MySQL 存储引擎 - InnoDB 实现原理介绍
- MySQL数据库备份脚本
- 4.5万字手把手教你实现MySQL TB级数据存储!!
- PostgreSQL的学习心得和知识总结(九十二)|语法级自上而下完美实现MySQL数据库的 枚举类型创建表及插入数据等操作 的实现方案
- PostgreSQL的学习心得和知识总结(六十二)|语法级自上而下完美实现MySQL数据库的 建表时COMMENT列和表 的实现方案
- PostgreSQL的学习心得和知识总结(四十)|语法级自上而下完美实现MySQL数据库UPDATE命令的 set使用别名 的实现方案
- 如何实现MySQL表数据随机读取?从mysql表中读取随机数据
- ELASTIC SEARCH学习笔记(四)----与传统数据库(MYSQL)的比较
- mysql date_format函数