注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

断尘居

温柔的男人像海洋。

 
 
 
 
 

日志

 
 

错误代码: 1093 You can't specify target table 'resource' for update in FROM clause  

2013-12-02 15:38:06|  分类: MySQL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
错误信息:
You can't specify target table 'resource' for update in FROM clause

从stackoverflow上看到一个相同的问题场景,解决方法为将数据放在内存中然后建立子查询。

解决方案:
/* update resource table */
UPDATE 
  `resource` 
SET
  profile_body = REPLACE(
    profile_body,
    '<Protocol name="hls0"><Drm name="loli"/>',
    '<Protocol name="hls0"><Drm name="loco"/><Drm name="loli"/>'
  ) 
WHERE id IN 
  (SELECT 
    tmp.id 
  FROM
    (
      (SELECT 
        r.id 
      FROM
        `resource_type` t 
        LEFT JOIN resource r 
          ON r.`id` = t.resource_id 
      WHERE t.resource_id IN 
        (SELECT 
          resource_id 
        FROM
          resource_type 
        GROUP BY resource_id 
        HAVING COUNT(resource_id) = 1) 
        AND t.drm_type = 5 
        AND r.`status` NOT IN ('deleted') 
        AND r.`oper_id` = 
        (SELECT 
          id 
        FROM
          operator o 
        WHERE o.sso_settings = 'pbcsf'))
    ) AS tmp
  ) ;


  评论这张
 
阅读(640)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017