MySQL异常一之: You can‘t specify target table for update in FROM clause解决办法
文章目录
- 前言
- 一、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解决办法相关推荐
- 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 这篇 ...
- 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条 ...
- 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 距离='',驾车时间=' ...
- 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 ...
- 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 解决办 ...
- mysql操作中 出现You can‘t specify target table for update in FROM clause错误的解决方法
这个错误实际上也不能称之为咱们sql语句写的不行,实际上是我们在一些细节上没有遵循mysql的语法规范. 问题所在:我们一个sql语句中先select这个表,然后再update这个表的内容. 错误示范 ...
- mysql错误:1093-You can’t specify target table for update in FROM clause的解决方法
在做更新操作的时候,赋值操作用了子查询,这个时候Mysql就报了如标题的错误. 解决方法:子查询需要再包裹一层 把他当成一个新表 然后通过新表查询出来的值 来赋值. 这个方法只适用于你的查询和更新操作 ...
- 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 ...
- 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 ...
最新文章
- python读取字符串的list dict_转:Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结...
- python升级和安装pip
- JVM调优总结(7):调优方法
- 浅谈Linux服务器究竟设置多大交换分区合适
- c++矩阵转置_C语言:数据结构-稀疏矩阵的压缩存储
- 创建面板对象Java,从PNG图像或Java面板创建PDF
- 【蓝桥杯】Python自带编辑器IDLE的使用教程
- 写JQuery 插件 什么?你还不会写JQuery 插件
- ThinkPHP 5使用OSS
- Lua语言模型 与 Redis应用
- 4、Linux的文件系统结构(目录树结构)
- JavaScript高级编程
- 如何在Python中实现尾递归优化
- Mybatis 中经典的 9 种设计模式!面试可以吹牛了!
- 淘宝京东鞋服板砖线报,秒杀抢购捡漏,兔子仙女宝妈童话镇等之后的寄件价格问题,这个可以帮你sheng下好多快递q,【云杰智慧邀请码:HJDNA5】
- 英特尔第十代处理器为什么不支持win7_为什么7代CPU不支持WIN7操作系统?
- Excel中取值函数三剑客:LEFT、RIGHT、MID
- win11更新特别慢怎么办
- [1304]求圆的周长和面积(Java)
- js中如何将字符串转化为时间,并计算时间差