`
SSailYang
  • 浏览: 312766 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL update 中 select clause 的一个问题

阅读更多

 

今天遇到的问题,随口说一句。

 

MySQL 中,如果 update 语句中含有 select 子句,那么update 的表和 select 子句中的表不能是一个。否则会得到“You can't specify target table <Table Name> for update in FROM clause” 的错误消息。解决方法是在 select 子句的 from 不直接用表名,而是用一个另外一个 select 语句得到一个临时表。

 

update <Table Name> set xxx=xxx where
  (
    select * from (select tmp.* from <Table Name> tmp) a
      where something
  ) = something
 

 

分享到:
评论

相关推荐

    mysql中You can’t specify target table for update in FROM clause错误解决方法.docx

    最简单的方法是将FROM子句中的查询改为一个子查询,这样就可以避免在同一个UPDATE语句中同时出现目标表的问题。 修改后的SQL语句如下: ```sql UPDATE employees e SET e.name = ( SELECT name FROM employees ...

    MySQL SELECT同时UPDATE同一张表问题发生及解决

    然而,当你试图在同一个SQL语句中同时使用 `SELECT` 从一个表中获取数据并更新该表时,MySQL会抛出错误,因为它不支持在 `FROM` 子句中直接引用作为 `UPDATE` 目标表的表。这种限制可能会在某些复杂的数据处理场景下...

    mysql中错误:1093-You can’t specify target table for update in FROM clause的解决方法

    在MySQL中,错误1093 - "You can't specify target table for update in FROM clause" 是一个常见的问题,它发生在尝试在`UPDATE`语句的`FROM`子句中直接引用要更新的同一张表时。这个错误表示MySQL不支持在`UPDATE`...

    mysql中You can’t specify target table for update in FROM clause错误解决方法

    在MySQL数据库中,"You can’t specify target table for update in FROM clause"是一个常见的错误,它指出在UPDATE语句中不能直接引用目标表作为FROM子句的一部分。这是因为MySQL不允许在一个单条SQL语句中同时对一...

    MySQL报错1093 – You can’t specify target table ‘t’ for update in FROM clause, Time: 0

    在MySQL数据库中,错误代码1093 - "You can’t specify target table ‘t’ for update in FROM clause" 是一个常见的错误,它通常发生在尝试在一个`UPDATE`语句的`FROM`子句中直接引用要更新的目标表时。...

    MySQL5.7中的sql_mode默认值带来的坑及解决方法

    在正常项目开发过程中,如果MySQL版本从5.6升级到5.7版本。作为DBA在考虑数据库版本升级带来的影响时,一般会有几个注意点: sql_mode optimizer_switch 本文主要内容是MySQL升级到5.7版本之后,由于默认的 sql_...

    MySQL UPDATE 更新

    总结来说,MySQL的UPDATE语句是一个强大的工具,用于更新数据库中的数据。正确使用WHERE子句可以确保只更新你想要修改的特定行,避免意外地更改大量数据。在编程环境中,如PHP,你可以通过调用相应的函数来执行...

    MySQL数据库update更新子查询

    总的来说,理解并掌握如何在`UPDATE`语句中正确使用子查询是MySQL数据库操作中的一个重要技能。合理利用`JOIN`或并列子查询,可以有效地避免`1093`错误,实现对数据的准确更新。在设计和编写这类语句时,要确保遵循...

    MySQL数据库同时查询更新同一张表的方法

    在平常的项目中,经常会碰到这样的问题:我需要在一张标中同时更新和查询出来的...结果却报错,报错信息为:You can't specify target table 'tb_test' for update in FROM clause,不能在同一语句中update,select同

    mybatis 批量插入 嵌套select.pdf

    这个问题的描述是关于如何在MyBatis中正确地执行一个批量插入操作,其中一个字段的值依赖于对同一张表的SELECT查询结果。 原始的XML映射文件中的SQL插入语句尝试在FROM子句中直接更新目标表'chat_messages',这是不...

    Python3实现连接mysql并执行增删改查操作(源代码)

    定义一个`connect_to_mysql`函数来建立与MySQL数据库的连接。如果连接成功,则返回连接对象;否则,打印错误信息并返回`None`。 ```python def connect_to_mysql(): try: connection = mysql.connector.connect(*...

    MySQL最详细的帮助文档

    4. **SQL语法**:详尽的SQL查询语句指南,包括SELECT、INSERT、UPDATE、DELETE等基本操作,以及更复杂的联接(JOIN)、子查询、聚合函数(GROUP BY)和窗口函数(OVER clause)。 5. **存储引擎**:讲解InnoDB...

    mysql数据库基础知识

    10. **MySQL复制(第18章)**:MySQL复制是一种将数据从一个服务器(主服务器)同步到其他服务器(从服务器)的技术,用于负载均衡、故障转移和数据冗余。主服务器上的所有更改都会被记录在二进制日志中,然后传输到...

    易语言MySQL语句代码生成器

    对于易语言使用者来说,这是一个非常实用的工具,可以显著提升数据库相关的开发效率,减少手动编写SQL语句带来的错误风险。在使用这个工具时,开发者只需提供必要的数据库连接信息和文本标记,其余的工作就交给代码...

    MySql存储过程编程.chm

    Using SELECT Statements with an INTO Clause Section 5.3. Creating and Using Cursors Section 5.4. Using Unbounded SELECT Statements Section 5.5. Performing Dynamic SQL with Prepared Statements ...

    mysql 一个较特殊的问题:You can't specify target table 'wms_cabinet_form'

    在MySQL数据库中,遇到的这个问题是关于在一个UPDATE语句中不能直接引用目标更新表(即`wms_cabinet_form`)作为FROM子句的一部分。这个限制是MySQL特有的,与SQL Server等其他数据库系统不同。错误消息"You can't ...

Global site tag (gtag.js) - Google Analytics