mysql中delete from where子查询的限制是什么

61次阅读
没有评论

共计 693 个字符,预计需要花费 2 分钟才能阅读完成。

自动写代码机器人,免费开通

丸趣 TV 小编给大家分享一下 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)
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 子查询的限制是什么有了一定的了解,想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计693字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)