mysql 在update中实现子查询的方式

摘要:
本文转自:91博客;原始地址:http://www.9191boke.com/644523640.html当使用MySQL条件更新时,首先想到的是编写UPDATEbuyerSETis_ Seller=1 WHERE EUidIN(SELECT uid FROM Seller)此语句不正确。不能为updateinFROM指定目标表'xxx'

本文转自: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

免责声明:文章转载自《mysql 在update中实现子查询的方式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇详解Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失vs.net c# 安装、注册windows service服务,判断服务是否存在,是否启动下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL慢日志功能分析及优化增强

此文已由作者温正湖授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 MySQL慢日志(slow log)是MySQL DBA及其他开发、运维人员需经常关注的一类信息。使用慢日志可找出执行时间较长或未走索引等SQL语句,为进行系统调优提供依据。本文结合线上案例分析如何正确设置MySQL慢日志参数和使用慢日志功能,并介绍网易云RDS对M...

VB6.0操作SQL Server——增删改查

http://www.cnblogs.com/Miss-Lin/archive/2012/08/13/2635848.html一、数据录入通过VB向SQL Server数据库中录入数据,可以使用数据绑定控件录入数据与使用SQL语句录入 1.利用数据绑定控件录入数据 使用数据绑定控件录入数据可以运行较少的代码,实现向数据库中录入数据,数据绑定后,由于数据...

MySQL中REGEXP正则表达式使用大全

REGEXP在mysql是用来执行正则表达式的一个函数 像php中的preg之类的函数了,regexp正则函数如果只是简单的查询使用like即可,但复杂的还是需要使用regexp了,下面我们来看看。 MySql用户手册建议,在构造简单查询时,仍使用通配符。 如:Select [*|fieldname list] From [tablename] whe...

MySQL主从复制的实现过程

一、什么是主从复制   将主数据库中的DDL和DML操作通过二进制日志传输到从数据库上,然后将这些日志重新执行(重做);从而使得从数据库的数据与主数据库保持一致。 基本原理:   MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。   MySQL复制是基于主服务器在二进制日志中跟踪所有对数据库的更改。因此,...

Net Core SqlSuger Sql sever 迁移 Mysql

Mysql 安装 对该码农界的左登峰教程扩展第五步:密码位置截图 文件格式报错:wyx100 第六步:mysqld --install [服务名] ###(我觉得有必要起个好记的服务名)需要以管理员身份运行cmd Navicat15 安装 茶油树:破解教程 Navicat15 导入sql sever数据 一曲长歌,一...

通过pd.to_sql()将DataFrame写入Mysql

循环创建表,并且创建主键、外键 import pandas as pd from sqlalchemy import create_engine from sqlalchemy.types import NVARCHAR, Float, Integer def pd2sql(): """ to_sql目前只支持两类mysq...