zoukankan      html  css  js  c++  java
  • mysql You can't specify target table for update in FROM clause解决方法

    mysql You can't specify target table for update in FROM clause解决方法
    出现这个错误的原因是不能在同一个sql语句中,先select同一个表的某些值,然后再update这个表。

    <pre>
    mysql> update message set content='Hello World' where id in(select min(id) from message group by uid);
    ERROR 1093 (HY000): You can't specify target table 'message' for update in FROM clause
    </pre>

    因为在同一个sql语句中,先select出message表中每个用户消息的最小id值,然后再更新message表,因此会出现 ERROR 1093 (HY000): You can’t specify target table ‘message’ for update in FROM clause 这个错误。


    解决方法:select的结果再通过一个中间表select多一次,就可以避免这个错误
    <pre>
    update message set content='Hello World' where id in( select min_id from ( select min(id) as min_id from message group by uid) as a );
    </pre>

  • 相关阅读:
    C++内置类型对象之间的转换
    快速排序
    面试题7:用两个栈实现队列
    面试题6:重建二叉树
    poj 3264(线段树)
    poj 3038
    poj 并查集
    poj 1270(toposort)
    poj 2503(字符串)
    poj 3687(拓扑排序)
  • 原文地址:https://www.cnblogs.com/newmiracle/p/11864844.html
Copyright © 2011-2022 走看看