update ipgroup a set flag=0 where a.id <>(select min(id) from ipgroup where iplong=a.iplong) 在MYSQL里不好运行

cnhuai 2008-05-22 12:48:52
update ipgroup a set flag=0 where a.id <>(select min(id) from ipgroup where iplong=a.iplong) 在MYSQL里不好运行
提示1093错误:you can't specify target table for update in from clause
高手来改
...全文
164 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnhuai 2008-05-22
  • 打赏
  • 举报
回复
1.update ipgroup a set flag=0 where a.id <>(select min(id) from ipgroup where iplong=a.iplong)
这个语句应该也是对的吧,只是不能在MYSQL上运行,是这样的吗?

2.第一次见到,(select iplong,min(id) as ma from ipgroup group by iplong) b
加个逗号,插入一个语句
WWWWA 2008-05-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cnhuai 的回复:]
数据量很大
要等大概30分钟有结果
一会看看

update ipgroup a ,(select iplong,min(id) as ma from ipgroup group by iplong) b

把a中的flag=0update了,那有没有update b啊?
[/Quote]
没有,B是不能UPDATE的
cnhuai 2008-05-22
  • 打赏
  • 举报
回复
我在和你在线聊天
你上一下把
cnhuai 2008-05-22
  • 打赏
  • 举报
回复
数据量很大
要等大概30分钟有结果
一会看看

update ipgroup a ,(select iplong,min(id) as ma from ipgroup group by iplong) b

把a中的flag=0update了,那有没有update b啊?
WWWWA 2008-05-22
  • 打赏
  • 举报
回复
实践出真知,你试试,看看结果是否正确。从你的SQL语句逻辑来看,应该没有问题。
cnhuai 2008-05-22
  • 打赏
  • 举报
回复
能这样写吗
加个逗号然后跟的一句,(select iplong,min(id) as ma from ipgroup group by iplong) b不理解
SQL语句变化真大
和在学校学的理论有很大的差别
呵呵
wwwwb 2008-05-22
  • 打赏
  • 举报
回复
update ipgroup a ,(select iplong,min(id) as ma from ipgroup group by iplong) b
set flag=0 where a.iplong=b.iplong and a.id<>b.ma

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧