开发者社区> 问答> 正文

求指定需求mysql update语句实现方式

想实现的结果是将第1001到1500这500条数据的buyer_nick分别设置为第1501条到2000条的500条的buyer_nick,就是第1001条的buyer_nick=第1501条的buyer_nick,第1002条的buyer_nick=第1502条的buyer_nick。
这样写会报个错误,[Err] 1288 - The target table tt of the UPDATE is not updatable。
有没有什么语句能实现这样的需求,求解
31

展开
收起
落地花开啦 2016-02-11 16:02:15 2361 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    你可以参考下面一个例子
    `create table aa(id int,pid int,name varchar(30));
    insert into aa values
    (1,1,'aa'),(2,1,'aa'),(3,1,'aa'),(4,1,'aa'),(5,1,'aa'),
    (6,2,'bb'),(7,3,'bb'),(8,4,'bb'),(9,5,'bb'),(10,6,'bb'); `
    -- 让1-5条记录的pid变为对应的6-10条记录的pid
    ` update aa A,aa B set A.pid=B.pid
    where (A.id between 1 and 5) and B.id=A.id+5; `

    2019-07-17 18:40:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像