扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
小编给大家分享一下MySQL中delete from where子查询的限制是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
目前成都创新互联公司已为数千家的企业提供了网站建设、域名、虚拟空间、网站运营、企业网站设计、嵩县网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
1、使用mysql进行delete from操作时,若子查询的 FROM 字句和更新/删除对象使用同一张表,会出现错误。(相关推荐:MySQL教程)
mysql> DELETE FROM 'tab' where id in (select min(id) from tag GROUP BY field1,field2 HAVING COUNT(id)>1);
error: You can't specify target table 'tab' for update in FROM clause.(不能为FROM子句中的更新指定目标表'tab')
针对“同一张表”这个限制,多数情况下都可以通过多加一层select 别名表来变通解决,像这样
DELETE FROM 'tab' where id in ( select id from ( select max(id) from 'tab' GROUP BY field1,field2 HAVING COUNT(id)>1 ) ids );
2.delete from table... 这其中table不能使用别名
mysql> delete from table a where a.id in (1,2);(语法错误)
mysql> select a.* from table a where a.id in (1,2);(执行成功)
看完了这篇文章,相信你对mysql中delete from where子查询的限制是什么有了一定的了解,想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流