首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从子查询中更新同一mysql表中的临时字段(避免MySql错误#1093 )

在MySQL中,要从子查询中更新同一表中的临时字段,可以使用临时表或者内连接来实现,以避免出现MySQL错误#1093。

一种方法是使用临时表。首先,创建一个临时表,将子查询的结果存储在该临时表中。然后,使用UPDATE语句将临时表中的数据更新到原始表中的临时字段。最后,删除临时表。

以下是具体的步骤:

  1. 创建临时表:
  2. 创建临时表:
  3. 更新原始表中的临时字段:
  4. 更新原始表中的临时字段:
  5. 删除临时表:
  6. 删除临时表:

另一种方法是使用内连接。在UPDATE语句中使用子查询,并将子查询的结果与原始表进行内连接,然后更新原始表中的临时字段。

以下是具体的步骤:

代码语言:txt
复制
UPDATE your_table
INNER JOIN (
    SELECT ...
    FROM your_table
    WHERE ...
) AS temp_table ON your_table.id = temp_table.id
SET your_table.temp_field = temp_table.temp_field

这样,你就可以从子查询中更新同一MySQL表中的临时字段,避免了MySQL错误#1093。

请注意,以上答案中没有提及任何特定的云计算品牌商,如有需要,可以根据具体情况选择适合的云计算平台和相关产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL 如何查询包含某字段

查询tablename 数据库 以”_copy” 结尾 select table_name from information_schema.tables where table_schema='tablename...(base table 指基本,不包含系统) table_name 指具体名 如查询work_ad数据库是否存在包含”user”关键字数据 select table_name from...如何查询包含某字段 select * from systables where tabname like 'saa%' 此法只对Informix数据库有用 查询指定数据库中指定所有字段名column_name...= ‘test’ group by table_schema; mysql查询到包含该字段所有名 SELECT TABLE_NAME FROM information_schema.COLUMNS...WHERE COLUMN_NAME='字段名' 如:查询包含status 字段数据名 select table_name from information_schema.columns where

12.6K40

MySQL查询某个所有字段并通过逗号分隔连接

想多造一些测试数据,字段又多一个个敲很麻烦,导出中部分字段数据又不想导出ID字段(因为ID字段是自增,导出后再插入会报唯一性错误),select * 查出来又是所有的字段。...可以通过如下SQL查询中所有字段通过逗号连接,然后复制出来进行select查询再导出 select group_concat(COLUMN_NAME) '所有字段' from information_schema.COLUMNS...where table_name = '名'; 执行效果如下: 下面的语句可以查询某个库某个所有字段字段名称、类型、字符长度和字段注释等信息 select * from information_schema.COLUMNS...where table_name = '名' and table_schema = '数据库名'; 执行效果如下:

9.4K20
  • 《叶问》31期,MySQL如何查询某个IS(意向共享)锁

    问题 问题原文是这样: 假如在MySQL事务里,给某个一行加了 共享锁,理论上这个本身会自动加上意向共享锁,那么能不能用 sql 查出这个加了意向锁?...回答 答案是肯定,当然可以执行SQL查询IS锁加锁状态。 先声明,我们本次讨论MySQLInnoDB引擎,下面讨论内容都是基于这个前提。...加级锁方法和MyISAM是一样,执行 LOCK TABLE READ/WRITE 即可。...InnoDB行锁是加在索引上,因此如果没有合适索引,是会导致表里所有记录都被加上行锁,其后果等同于级锁,但产生影响比级锁可就大多了。因为锁对象数量大了很多,消耗内存也多很多。...Enjoy MySQL :)

    1.4K40

    Mysql通过关联update将一张一个字段更新到另外一张

    做什么事情 更新book_borrow,设置其中student_name为studentname,关联条件为book_borrow.student_id = student_id student... book_borrow 几种不同更新方式 保留原数据更新 只会更新student中有的数据,student查不到数据,在book_borrow还保持不变,不会更新,相当于内连接...更新结果以student查询结果为准,student没有查到记录会全部被更新为null 相当于外连接 update book_borrow br set student_name = (select...update book_borrow br left join student st on br.student_id = st.id set br.student_name = st.name;   将一张查询结果插入到另外一张...insert select :将一条select语句结果插入到 -- insert into 名1 (列名) select (列名) from 名2 ; insert into tableA

    1.5K10

    Mysql删除满足自己某个条件

    SELECT * FROM 名 WHERE 统计日期 IN( SELECT DISTINCT 统计日期 FROM 名 WHERE 字段1='data1') AND 字段1 'data1' 真改完了后就是这种...错误代码: 1093 You can't specify target table '名' for update in FROM clause 其实仔细想想逻辑还是有问题,循环用了同一,会形成类似于死循环操作...,虽然我们明白这样好像没什么问题,但是电脑和你不一样, mysql在把子查询结果作为删除数据条件,而mysql不允许在子查询同时删除原数据 解决办法: 方法一、分步骤: 先创建临时 create...table tmp(SELECT DISTINCT 统计日期 FROM 名 WHERE 字段1='data1') 再执行删除 delete FROM 名 WHERE 统计日期 IN(SELECT...* FROM tmp) AND 字段1 'data1' 最后删除临时 drop table tmp 方法二直接删除 链接:https://blog.csdn.net/jaryle/article

    2.7K20

    HIVE基础命令Sqoop导入导出插入问题动态分区创建HIVE脚本筛选CSV非文件行GROUP BYSqoop导出到MySQL字段类型问题WHERE查询CASE查询

    ; // 从别的查询出相应数据并导入到Hive,注意列数目一定要相同 insert into table invoice_lines select * from invoice_lines_temp2...字段类型问题 一些常见问题 当MySQL字段类型是datetime类型时候,报了以下异常 Error: java.io.IOException: Can't export data, please...MySQL,根本不知道什么时候有哪些字段 所以,是将MySQL一些datetime类型改成varchar类型?...WHERE查询 在hive查询会有各种问题,这里解决方法是将子查询改成JOIN方式 先看一段在MySQLSQL,下不管这段SQL从哪来,我也不知道从哪里来 SELECT...CASE查询 这个与上面是一样,都是改成JOIN方式。

    15.4K20

    MySQL EXPLAIN执行计划详解

    详细介绍了MySQL EXPLAIN执行计划各个字段含义以及使用方式。 调用EXPLAIN可以获取关于查询执行计划信息,以及如何解释输出。...EXPLAIN PARTITIONS:如果查询基于分区的话,将显示查询将访问分区。MySQL5.1以及更新版本支持。...增加了EXPLAIN之后,MySQL可能仍然会执行部分查询,如果查询FROM字句中包括子查询,那么MySQL实际会执行子查询,并将其结果放在一个临时,然后完成外层查询优化。...MySQL会递归执行并将结果存放在一个临时,也称为派生,因为该临时从子查询中派生来。 UNION,UNION第二个或后面的SELECT。...2.4 type 关联类型,或者说访问类型,该字段表明MySQL决定如何查找行。 常用访问类型如下(性能依次从最差到最优): ALL:全扫描,从头到尾查找所需要行。

    1.7K140

    52 条 SQL 语句性能优化策略,建议收藏!

    17 使用“临时”暂存中间结果 简化SQL语句重要方法就是采用临时暂存中间结果,但是,临时好处远远不止这些,将临时结果暂存在临时,后面的查询就在tempdb中了,这可以避免程序多次扫描主表...36 避免死锁,在你存储过程和触发器访问同一时总是以相同顺序;事务应经可能地缩短,在一个事务应尽可能减少涉及到数据量;永远不要在事务中等待用户输入。...37 避免使用临时,除非却有需要,否则应尽量避免使用临时,相反,可以使用变量代替;大多数时候(99%),变量驻扎在内存,因此速度比临时更快,临时驻扎在TempDb数据库,因此临时操作需要跨数据库通信...GROUP BY和ORDER BY子句中使用有索引列,保持索引简单,不在多个索引包含同一个列,有时候MySQL会使用错误索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT...1970—2037适合做更新时间 MySQL可以很好支持大数据量存取,但是一般说来,数据库越小,在它上面执行查询也就会越快。

    92800

    52 条 SQL 语句性能优化策略

    17、使用“临时”暂存中间结果 : 简化SQL语句重要方法就是采用临时暂存中间结果,但是临时好处远远不止这些,将临时结果暂存在临时,后面的查询就在tempdb中了,这可以避免程序多次扫描主表...36、避免死锁,在你存储过程和触发器访问同一时总是以相同顺序;事务应经可能地缩短,在一个事务应尽可能减少涉及到数据量;永远不要在事务中等待用户输入。...37、避免使用临时,除非却有需要,否则应尽量避免使用临时,相反,可以使用变量代替;大多数时候(99%),变量驻扎在内存,因此速度比临时更快,临时驻扎在TempDb数据库,因此临时操作需要跨数据库通信...46、MySQL查询可以启用高速查询缓存。这是提高数据库性能有效MySQL优化方法之一。当同一查询被执行多次时,从缓存中提取数据和直接从数据库返回数据快很多。...1970—2037适合做更新时间 MySQL可以很好支持大数据量存取,但是一般说来,数据库越小,在它上面执行查询也就会越快。

    64260

    52条SQL语句性能优化

    17,使用“临时”暂存中间结果简化SQL语句重要方法就是采用临时暂存中间结果,但是,临时好处远远不止这些,将临时结果暂存在临时,后面的查询就在tempdb中了,这可以避免程序多次扫描主表,...36,避免死锁,在你存储过程和触发器访问同一时总是以相同顺序;事务应经可能地缩短,在一个事务应尽可能减少涉及到数据量;永远不要在事务中等待用户输入。...37,避免使用临时,除非却有需要,否则应尽量避免使用临时,相反,可以使用变量代替;大多数时候(99%),变量驻扎在内存,因此速度比临时更快,临时驻扎在TempDb数据库,因此临时操作需要跨数据库通信...GROUP BY和ORDER BY子句中使用有索引列,保持索引简单,不在多个索引包含同一个列,有时候MySQL会使用错误索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT...1970—2037适合做更新时间 MySQL可以很好支持大数据量存取,但是一般说来,数据库越小,在它上面执行查询也就会越快。

    80210

    Mysql性能优化一:SQL语句性能优化

    17,使用“临时”暂存中间结果  简化SQL语句重要方法就是采用临时暂存中间结果,但是,临时好处远远不止这些,将临时结果暂存在临时,后面的查询就在tempdb中了,这可以避免程序多次扫描主表...36,避免死锁,在你存储过程和触发器访问同一时总是以相同顺序;事务应经可能地缩短,在一个事务应尽可能减少涉及到数据量;永远不要在事务中等待用户输入。...37,避免使用临时,除非却有需要,否则应尽量避免使用临时,相反,可以使用变量代替;大多数时候(99%),变量驻扎在内存,因此速度比临时更快,临时驻扎在TempDb数据库,因此临时操作需要跨数据库通信...GROUP BY和ORDER BY子句中使用有索引列,保持索引简单,不在多个索引包含同一个列,有时候MySQL会使用错误索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT...1970—2037适合做更新时间  MySQL可以很好支持大数据量存取,但是一般说来,数据库越小,在它上面执行查询也就会越快。

    1.9K21

    实用排坑帖:SQL语句性能优化操作策略大全

    17、使用“临时”暂存中间结果 : 简化SQL语句重要方法就是采用临时暂存中间结果,但是临时好处远远不止这些,将临时结果暂存在临时,后面的查询就在tempdb中了,这可以避免程序多次扫描主表...36、避免死锁,在你存储过程和触发器访问同一时总是以相同顺序;事务应经可能地缩短,在一个事务应尽可能减少涉及到数据量;永远不要在事务中等待用户输入。...37、避免使用临时,除非却有需要,否则应尽量避免使用临时,相反,可以使用变量代替;大多数时候(99%),变量驻扎在内存,因此速度比临时更快,临时驻扎在TempDb数据库,因此临时操作需要跨数据库通信...46、MySQL查询可以启用高速查询缓存。这是提高数据库性能有效MySQL优化方法之一。当同一查询被执行多次时,从缓存中提取数据和直接从数据库返回数据快很多。...1970—2037适合做更新时间 MySQL可以很好支持大数据量存取,但是一般说来,数据库越小,在它上面执行查询也就会越快。

    85121

    爆肝!52 条SQL语句性能优化策略

    17 使用“临时”暂存中间结果简化SQL语句重要方法就是采用临时暂存中间结果,但是,临时好处远远不止这些,将临时结果暂存在临时,后面的查询就在tempdb中了,这可以避免程序多次扫描主表,...36 避免死锁,在你存储过程和触发器访问同一时总是以相同顺序;事务应经可能地缩短,在一个事务应尽可能减少涉及到数据量;永远不要在事务中等待用户输入。...37 避免使用临时,除非却有需要,否则应尽量避免使用临时,相反,可以使用变量代替大多数时候(99%),变量驻扎在内存,因此速度比临时更快,临时驻扎在TempDb数据库,因此临时操作需要跨数据库通信...GROUP BY和ORDER BY子句中使用有索引列,保持索引简单,不在多个索引包含同一个列,有时候MySQL会使用错误索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT...MySQL可以很好支持大数据量存取,但是一般说来,数据库越小,在它上面执行查询也就会越快。 因此,在创建时候,为了获得更好性能,我们可以将字段宽度设得尽可能小。

    55330

    后端程序员必备:SQL高性能优化方案!50条优化,建议马上收藏!

    但是临时好处远远不止这些,将临时结果暂存在临时,后面的查询就在 tempdb 中了,这可以避免程序多次扫描主表,也大大减少了程序执行“共享锁”阻塞“更新锁”,减少了阻塞,提高了并发性能。...36、避免死锁,在你存储过程和触发器访问同一时总是以相同顺序;事务应经可能地缩短,在一个事务应尽可能减少涉及到数据量;永远不要在事务中等待用户输入。...当同一查询被执行多次时,从缓存中提取数据和直接从数据库返回数据快很多。...EXPLAIN 查询结果还会告诉你你索引主键被如何利用,你数据如何被搜索和排序。...而 timestamp 表示范围是 1970—2037 适合做更新时间。 MySQL可以很好支持大数据量存取,但是一般说来,数据库越小,在它上面执行查询也就会越快。

    1.1K01

    SQL优化

    使用“临时”暂存中间结果 简化SQL语句重要方法就是采用临时暂存中间结果,但是,临时好处远远不止这些,将临时结果暂存在临时,后面的查询就在tempdb中了,这可以避免程序多次扫描主表,也大大减少了程序执行...避免死锁,在你存储过程和触发器访问同一时总是以相同顺序;事务应经可能地缩短,在一个事务应尽可能减少涉及到数据量;永远不要在事务中等待用户输入。...避免使用临时,除非却有需要,否则应尽量避免使用临时,相反,可以使用变量代替;大多数时候(99%),变量驻扎在内存,因此速度比临时更快,临时驻扎在TempDb数据库,因此临时操作需要跨数据库通信...GROUP BY和ORDER BY子句中使用有索引列,保持索引简单,不在多个索引包含同一个列,有时候MySQL会使用错误索引,对于这种情况使用USE INDEX,检查使用SQL_MODE=STRICT...1970—2037适合做更新时间 MySQL可以很好支持大数据量存取,但是一般说来,数据库越小,在它上面执行查询也就会越快。

    69720

    面试官:熟悉SQL优化吗?我只知道20种,其实远不止...

    但是临时好处远远不止这些,将临时结果暂存在临时,后面的查询就在 tempdb 中了,这可以避免程序多次扫描主表,也大大减少了程序执行“共享锁”阻塞“更新锁”,减少了阻塞,提高了并发性能。...36、避免死锁,在你存储过程和触发器访问同一时总是以相同顺序;事务应经可能地缩短,在一个事务应尽可能减少涉及到数据量;永远不要在事务中等待用户输入。...47、EXPLAIN SELECT 查询用来跟踪查看效果: 使用 EXPLAIN 关键字可以让你知道 MySQL如何处理你 SQL 语句。这可以帮你分析你查询语句或是结构性能瓶颈。...EXPLAIN 查询结果还会告诉你你索引主键被如何利用,你数据如何被搜索和排序。...而 timestamp 表示范围是 1970—2037 适合做更新时间。 MySQL可以很好支持大数据量存取,但是一般说来,数据库越小,在它上面执行查询也就会越快。

    49750

    mysql insert into as_mysql insert into select使用方法详解

    该INSERT语句目标可能出现在查询部分FROM子句中SELECT。但是,不能插入到从子查询同一中进行选择。...在从同一中选择并插入时,MySQL创建一个内部临时来存放来自这些行SELECT,然后将这些行插入到目标。...为避免SELECT在INSERT引用同一时引用不明确列引用问题 , 请为该SELECT部分中使用每个提供唯一别名,并使用适当别名限定该部分列名。...由于这个问题,在MySQL 5.5.18, INSERT…SELECT ON DUPLICATE KEY UPDATE和INSERT IGNORE… SELECT语句被标记为不安全基于语句复制。...(错误#11758262,错误#50439) INSERT INTO SELECT影响使用诸如MyISAM使用级锁存储引擎分区 语句 会锁定源和目标所有分区。

    1.9K30
    领券