首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标记重复的id会导致错误

问标记重复的id会导致错误
EN

Stack Overflow用户
提问于 2013-06-19 02:08:04
回答 2查看 26关注 0票数 1

我正在尝试标记重复的事件I。

代码语言:javascript
复制
update event set repeated = 1 where eid in 
(SELECT eid FROM event group by eid HAVING count(eid) > 1);

但是,我得到了以下响应:

代码语言:javascript
复制
You can't specify target table 'event' for update in FROM clause
EN

回答 2

Stack Overflow用户

发布于 2013-06-19 02:09:20

当使用另一个子查询来掩盖您不能从正在更新的表中选择时,您可以‘愚弄’MySQL

代码语言:javascript
复制
update event 
set repeated = 1 
where eid in 
(
    select * from 
    (
        SELECT eid FROM event group by eid HAVING count(eid) > 1
    ) x
)
票数 2
EN

Stack Overflow用户

发布于 2013-06-19 02:09:26

这是MySQL的缺点之一。您可以通过将子查询包装在另一个子查询中来修复它:

代码语言:javascript
复制
update event
    set repeated = 1
    where eid in (select eid
                  from  (SELECT eid
                         FROM event
                         group by eid
                         HAVING count(eid) > 1
                        ) t
                 );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17175880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档