`

mysql update更新带子查询的实现方式

    博客分类:
  • sql
 
阅读更多

现在要做一下数据移植,需要更新相关的数据,需要在mysql中更新时不能将更新的表作为查询的表。

总结一下:

一:单表更新时

例如: update customer set category = 1 WHERE  deleteflag = 0 and name = '22';

注意不要子查询,mysql是不允许的。

二:带子查询的复杂更新

如:

update tb a,
(select  time,name
from tt )b 
set time4=b.col
where a.name=b.name and a.time1=b.time;

 

注意点:

1、update 时,更新的表不能在set和where中用于子查询;

2、update 时,可以对多个表进行更新(sqlserver不行);

         如:update ta a,tb b set a.Bid=b.id ,b.Aid=a.id;  

3、update 后面可以做任意的查询,这个作用等同于from;

 

参考的文章:感谢原创,弄了半天才弄出来,看到这里,豁然开朗。

http://blog.csdn.net/xys_777/article/details/5793565

分享到:
评论
3 楼 TryRelax 2017-01-08  
  update t_h5activity_pagedata a,
  (select h5id,max(add_date)as endday from t_h5activity_pagedata where add_date!="总计" group by h5id)b
  set a.add_date = b.endday
  where a.add_date="总计" and a.h5id = b.h5id
  (select h5id,max(add_date)as endday from t_h5activity_pagedata where add_date!="总计" group by h5id)b
  set a.add_date = b.endday
  where a.add_date="总计" and a.h5id = b.h5id
2 楼 576017120 2015-01-07  
如若_晴 写道
复杂子查询帮大忙了,谢谢!

使用99的sql语法比这个简单多了哈
1 楼 如若_晴 2014-11-01  
复杂子查询帮大忙了,谢谢!

相关推荐

    Mysql Update批量更新的几种方式

    刚开始你可能会想到使用循环执行多条UPDATE语句的方式,就像以下的python程序示例: for x in xrange(10): sql = ''' UPDATE mytable SET myfield='value' WHERE other_field='other_value'; ''' 这种方法并没有...

    mysql如何实现 如果存在就update更新,不存在再insert插入.zip

    在MySQL数据库中,如果你需要执行一个操作,即当数据存在时进行更新,如果不存在则进行插入,你可以使用`INSERT INTO...ON DUPLICATE KEY UPDATE`语句。这个功能强大的语句结合了`INSERT`和`UPDATE`操作,允许你在...

    mysql 批量更新及效率对比

    MySQL 批量更新的高效方法 MySQL 批量更新是指在 MySQL 数据库中批量更新多条记录的操作。这种操作在实际应用中非常常见,例如批量更新用户信息、订单状态等。然而,批量更新的效率问题一直是一个棘手的问题。近期...

    MySQL锁类型以及子查询锁表问题、解锁1

    如描述中所示,如果一个事务在更新时对子查询中的表进行锁定,可能导致其他事务尝试获取已被锁定的资源,从而引发死锁。MySQL在检测到死锁时会回滚其中一个事务以解决死锁。通过`SHOW ENGINE INNODB STATUS`可以查看...

    MySQL数据库update更新子查询

    MySQL数据库的`UPDATE`语句是用来修改已...合理利用`JOIN`或并列子查询,可以有效地避免`1093`错误,实现对数据的准确更新。在设计和编写这类语句时,要确保遵循MySQL的语法规则,以确保查询的执行效率和数据的准确性。

    mysql update正则替换sql语句

    MySQL的UPDATE语句用于修改表中的数据,当我们需要根据复杂的条件来更新记录时,可以利用正则表达式(REGEXP)来指定匹配模式。在MySQL中,可以使用REGEXP和RLIKE操作符来实现正则表达式匹配。 首先,来看一个简单...

    update mysql with c++

    对于“update mysql”,我们可能需要使用`UPDATE`语句来修改现有记录,例如更新图片的相关元数据。 3. **处理结果集**:如果SQL操作返回结果集,如`SELECT`查询,我们可以使用`mysql_store_result()`或`mysql_use_...

    MySQL Update Set 更新数据.docx

    MySQL Update Set 更新数据 MySQL Update Set 是一种用于更新数据库表中数据的语句。它的基本语法为:UPDATE tb_name SET column1 = new_value1, column2 = new_value2, ... WHERE definition。 其中,tb_name 是...

    mysql 树形结构查询

    MySQL 中的树形结构查询可以使用存储过程来实现,存储过程是一种复杂的查询逻辑,可以将复杂的查询逻辑封装在存储过程中,以提高查询效率和简化查询逻辑。存储过程可以根据需要设置递归深度,以控制查询的深度。 ...

    MySQL数据库中group by语句与update语句的用法研究.pdf

    本论文对 MySQL 数据库中的 group by 语句和 update 语句进行了深入研究,讨论了这些语句在数据库查询和修改中的应用,并给出了具体的解决方案。 一、MySQL 数据库中 group by 语句的用法 Group by 语句的作用是对...

    mysql-batch:小批量运行大型MySQL UPDATE和DELETE查询,以防止表行级锁定

    mysql批处理 在MySQL中更新或删除大量行将创建锁定,这些锁定将使并行运行的其他查询瘫痪。 该工具将小批量运行UPDATE和DELETE查询,以防止表级和行级锁定(使用InnoDB)。 如果必须更新或删除大量行,则也可以限制...

    MYSQL更新密码的不同方式

    对于在 Windows 系统下的 MySQL 用户来说,更新 root 密码可以通过以下步骤来实现: 1. **打开命令提示符**: - 首先确保 MySQL 服务正在运行。 - 打开命令提示符。 2. **连接 MySQL 服务器**: - 使用命令 `...

    记录一下MySql update会锁定哪些范围的数据.doc

    【MySQL 更新(Update)语句的锁定范围】 在MySQL中,`UPDATE`语句的锁定范围与数据库的隔离级别、存储引擎以及所使用的索引类型等因素密切相关。以下将详细阐述这些知识点。 1、**背景** 在数据库操作中,`UPDATE...

    6种MySQL批量更新方式的实现原理及效率比较.zip

    包括MyBatis-Plus提供的批量更新,JdbcTemplate提供的批量更新,在xml中循环拼接sql批量更新、case when语句批量更新、replace into方式批量更新、ON DUPLICATE KEY UPDATE批量更新。 适用于对Spring Boot和数据库...

    MySQL批量更新实战:6种方式效率PK.zip

    包括MyBatis-Plus提供的批量更新,JdbcTemplate提供的批量更新,在xml中循环拼接sql批量更新、case when语句批量更新、replace into方式批量更新、ON DUPLICATE KEY UPDATE批量更新。 适用于对Spring Boot和数据库...

    yum安装和更新mysql

    当需要更新MySQL到最新版本时,也可以通过`yum`命令轻松实现: ```bash yum update mysql-community-server ``` 同样地,如果不想看到任何提示信息,可以在命令末尾加上`-y`参数: ```bash yum update mysql-...

    mysql 同时更新多行数据不同的值

    mysql 同时更新多行数据不同的值 一个复杂的多条件更新sql: update users set status = (case user_id when 1 then 0 when 3 then 1 when 4 then 0 else status end) where user_id in (1,3,4) 在多数情况下,执行...

    从效率角度看6种MySQL批量更新方式的优劣.zip

    包括MyBatis-Plus提供的批量更新,JdbcTemplate提供的批量更新,在xml中循环拼接sql批量更新、case when语句批量更新、replace into方式批量更新、ON DUPLICATE KEY UPDATE批量更新。 适用于对Spring Boot和数据库...

    mysql 一次更新(update)多条记录的思路

    在MySQL中,更新多条记录通常涉及到`UPDATE`语句的使用。在处理批量更新时,如果需要根据特定条件更新不同记录的多个字段,可以采用`CASE`语句结合`WHERE`子句来实现。标题提到的问题是,在已经通过`INSERT`方法导入...

Global site tag (gtag.js) - Google Analytics