update ... where a.uid in(select ...) SQL更新字段与条件字段同一个

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(866)   2023-03-28 11:29:14
需求:将表(tableA)里面的字段column1值为33的改为22

错误示例
update tableA set column1='22' 
where uid in (
select uid from tableA where column1='33'
)

错误提示是:ERROR 1093 (HY000): You can't specify target table 'apples' for update in FROM clause. MySQL手册[UPDATE documentation](http://dev.mysql.com/doc/refman/5.0/en/update.html)这下面有说明 : “Currently, you cannot update a table and select from the same table in a subquery.”
在这个例子中,要解决问题也十分简单,但有时候不得不通过查询子句来update目标。好在我们有办法。


正确示例:
update tableA set column1='22'
where uid in (
    select uid from (
        select uid from tableA where column1='33'
    ) tmp
)


 
地址:https://www.leftso.com/article/852.html

相关阅读

需求:将表(tableA)里面的字段column1值为33的改为22错误示例update tableA set column1='22'  where uid in ( select uid f...
sql server数据库中字符串转换为float
sql
sql server数据库查询将varchar字符型转换为数字float型
sql server 2016数据库导出表数据/表结构
前言       作为开发人员,我们经常遇到必须处理数据库相关内容的情况; 通常,当客户端以excel工作表的形式向您发送其数据,并且在经过一些excel操作后将数据推送到数据库表时,便完成了该操作
spring data redis设置缓存的过期时间,spring data redis更新缓存的过期时间
Java编程之MyBatis框架sql中变量引用方式#{}与${}的区别
java 8 stream 多字段排序,本例子主要使用stream进行多个字段的排序,使用了 comparators和Comparator.thenComparing()方法。比较器之间返回一个...
sql求某一列的最大值减去最小值的差
sql
在Java编程中,ORM框架mybaties处理@Select注解中的动态sql处理方法