博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 的delete from where 子查询的一些限制
阅读量:6909 次
发布时间:2019-06-27

本文共 600 字,大约阅读时间需要 2 分钟。

1.使用mysql进行delete from操作时,若子查询的 FROM 字句和更新/删除对象使用同一张表,会出现错误。

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);(执行成功)

转载地址:http://jrgdl.baihongyu.com/

你可能感兴趣的文章
Qunar用户画像构建策略及应用实践
查看>>
话说数据中心里的新IP技术
查看>>
PHP7曝出三个高危0-day漏洞,还有一个仍未修复
查看>>
React Native Ubuntu简介
查看>>
透过“虚火”洞悉物联网的价值
查看>>
大数据和学生创业有什么关系
查看>>
视频点播播放器如何实现加密下载?
查看>>
Facebook将推“市场”功能:用户可相互买卖东西
查看>>
俄国防部组建信息作战部队 应对西方网络-心理攻击
查看>>
《Android应用开发攻略》——第2章 设计成功的应用程序 2.1 导言:设计成功的Android应用程序...
查看>>
法国物联网公司Sigfox 获1.6亿美元E轮融资
查看>>
Bob大叔和Jim Coplien对TDD的论战
查看>>
不以规矩不成方圆:Digital Ocean也删除了他们的数据库
查看>>
SharePoint 数据库迁移步骤
查看>>
中国电信开启2017年IP RAN设备集采:共两个标包
查看>>
解放智慧 智能家居对人到底是利还是弊
查看>>
安防物联网:海量分析技术仍是关键
查看>>
黄金法则:MySQL基准测试最佳实践
查看>>
Cisco reveals new initative
查看>>
Selenium2.0功能测试之forward与back
查看>>