文章目录

  • 前言
  • 一、bug描述
  • 二、需求描述
  • 三、错误做法
  • 四、正确写法
    • 1. 正确 sql
    • 2. sql 片段解释:

前言

总结SQL中的bug问题

一、bug描述

  • You can't specify target table 'CUP_TEST_CLASS_LIST' for update in FROM clause

  • 翻译一下:
    不能在FROM子句中指定更新的目标表’CUP_TEST_CLASS_LIST’

  • 白话一下:
    不能先select出同一表中的某些值,再update这个表(在同一语句中)

二、需求描述

  • 有一张表,想要改变某一列中的某些字段的数据。

  • 就是 修改 LIST 表中的 NAME 字段 数据,将NAME = 'SCA阿拉比卡标准' 修改为 NAME = '阿拉比卡标准'

三、错误做法

然后手写了一下SQL(本以为很简单,没想到很复杂),如下所示

UPDATE LIST
SET NAME = '阿拉比卡标准'
WHERE ID IN (SELECT ID FROM LIST WHERE NAME = 'SCA阿拉比卡标准'
)

这样是不行的,于是就报错了,最上面的错误

四、正确写法

1. 正确 sql

UPDATE LIST
SET NAME = '阿拉比卡标准'
WHERE ID IN (SELECT T.ID FROM (SELECT ID FROM LISTWHERE NAME = 'SCA阿拉比卡标准')T
);

2. sql 片段解释:

(SELECT ID FROM CUP_TEST_CLASS_LISTWHERE CUP_TEST_CLASS_NAME = 'SCA阿拉比卡标准'
)T

这个意思就是,将获取的数据 ID字段 设为一个新表,新表名字为 T

MySQL异常一之: You can‘t specify target table for update in FROM clause解决办法相关推荐

  1. MYSQL之You can't specify target table for update in FROM clause解决办法

    MYSQL之You can't specify target table for update in FROM clause解决办法 2016年12月21日 15:24:23 阅读数:19272 这篇 ...

  2. Mysql 错误 Code: 1093. You can't specify target table for update in FROM clause

    You can't specify target table 'recharge_log' for update in FROM clause 这个问题出现的情况是: 更新一个表的数据时,where条 ...

  3. mysql修改重复数据You can‘t specify target table ‘‘ for update in FROM clause

    You can't specify target table '' for update in FROM clause 得修改成下边的写法 update 景区与景区表 set 距离='',驾车时间=' ...

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

    发现问题 最近在处理一些数据库中数据的时候,写了下面的这一条sql语句: UPDATE f_student SET school_id = 0 WHERE id > ( SELECT id FR ...

  5. navicat for mysql执行sql语句报错: [Err] 1146 - Table ‘performance_schema.session_status‘doesn‘t exist 解决办法

    navicat for mysql执行sql语句报错: [Err] 1146 - Table 'performance_schema.session_status' doesn't exist 解决办 ...

  6. mysql操作中 出现You can‘t specify target table for update in FROM clause错误的解决方法

    这个错误实际上也不能称之为咱们sql语句写的不行,实际上是我们在一些细节上没有遵循mysql的语法规范. 问题所在:我们一个sql语句中先select这个表,然后再update这个表的内容. 错误示范 ...

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

    在做更新操作的时候,赋值操作用了子查询,这个时候Mysql就报了如标题的错误. 解决方法:子查询需要再包裹一层 把他当成一个新表 然后通过新表查询出来的值 来赋值. 这个方法只适用于你的查询和更新操作 ...

  8. MySQL 中 You can‘t specify target table ‘表名‘ for update in FROM clause解决办法

    废话懒得说了 将SELECT出的结果再通过中间表SELECT一遍,这样就规避了错误. update truth_jt set fee='1' where id in (SELECT j.id from ...

  9. Mysql:You can't specify target table for update in FROM clause的解决办法

    You can't specify target table '表名' for update in FROM clause 意思是 不能先select出同一表中的某些值,再update这个表 原SQL ...

最新文章

  1. python读取字符串的list dict_转:Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结...
  2. python升级和安装pip
  3. JVM调优总结(7):调优方法
  4. 浅谈Linux服务器究竟设置多大交换分区合适
  5. c++矩阵转置_C语言:数据结构-稀疏矩阵的压缩存储
  6. 创建面板对象Java,从PNG图像或Java面板创建PDF
  7. 【蓝桥杯】Python自带编辑器IDLE的使用教程
  8. 写JQuery 插件 什么?你还不会写JQuery 插件
  9. ThinkPHP 5使用OSS
  10. Lua语言模型 与 Redis应用
  11. 4、Linux的文件系统结构(目录树结构)
  12. JavaScript高级编程
  13. 如何在Python中实现尾递归优化
  14. Mybatis 中经典的 9 种设计模式!面试可以吹牛了!
  15. 淘宝京东鞋服板砖线报,秒杀抢购捡漏,兔子仙女宝妈童话镇等之后的寄件价格问题,这个可以帮你sheng下好多快递q,【云杰智慧邀请码:HJDNA5】
  16. 英特尔第十代处理器为什么不支持win7_为什么7代CPU不支持WIN7操作系统?
  17. Excel中取值函数三剑客:LEFT、RIGHT、MID
  18. win11更新特别慢怎么办
  19. [1304]求圆的周长和面积(Java)
  20. js中如何将字符串转化为时间,并计算时间差

热门文章

  1. taobao.user.avatar.get
  2. Excel 单元格 输入内容后 背景自动变色
  3. ksoftirqd内核线程
  4. Laravel文档梳理6、响应
  5. 全数集结,云上相会 | 大势智慧2022新品发布会改为线上举行
  6. Python制作专属有声小说(调用百度语音合成接口)
  7. 应粉丝需求力肝App爬虫入门教学,保姆级图文教程,⭐建议收藏⭐!!!
  8. Servlet获取Excel中数据的两种方式
  9. 1024@程序员:图灵社区福利来了,请本人签收
  10. Java练习之坦克大战!!!复制可以直接用!!!文章最后有飞机大战代码!!!