zoukankan      html  css  js  c++  java
  • mysql无法使用子查询更新语句的解决方案_使用join语句更新或者临时变量

      前言:在sqlserver中,是可以使用子查询语句更新表数据的,如: update A set column1=(select column1 from B) where ID=1;但是这个语句在mysql-11.0.10版本依然不支持。  但是通过查找网上其他小伙伴的资料发现了,可以借用join语句来达到类似于子查询更新的目的,当然也可以借用mysql的临时变量存储值更新(但是临时变量无法想sqlserver一样支持类似于表结构的存在),还有建立存储过程当然也可以(这里不讨论)。

      解决方案一-使用join语句更新(推荐):

    select * from vip_package_detail a
    inner join vip_package_detail b on a.Type=b.Type and a.PackageID=b.PackageID+6
    where a.LimitValue!=b.LimitValue and a.PackageID>=7

      解决方案二-使用临时变量;

    set @ID=0;
    select @ID:=ID from vip_package_detail where ID=1;
    update A set ID=@ID where 1=1;

      其他解决方案:还有道友使用update---case --when-then语句;

    参考方案:mysql 利用子查询更新表方法

      

    *感谢您的阅读。喜欢的、有用的就请大哥大嫂们高抬贵手“推荐一下”吧!你的精神 支持是博主强大的写作动力。欢迎转载!
    *博主的文章是自己平时开发总结的经验,由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
    *我的博客: http://www.cnblogs.com/lxhbky/
  • 相关阅读:
    SQL复制多表数据
    ie与firefox 关于js 的差别(转载)
    水晶报表函数大全【收藏】
    ArcGIS Engine对象库
    SQL Server死锁总结(转载)
    C#制作鹰眼全过程(带注释)
    大块鸭
    【经典】jQuery使用大全
    TreeView控件失效引发的思考
    根据数据集动态生成TREE
  • 原文地址:https://www.cnblogs.com/lxhbky/p/14805667.html
Copyright © 2011-2022 走看看