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

本文共 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://tjiao.baihongyu.com/

你可能感兴趣的文章
spring-boot-starter-swagger1.2.0.RELEASE:新增分组配置功能
查看>>
【Curl (libcurl) 开发 之一】Cocos2dx之libcurl(curl_easy)的编程教程(帮助手册)!...
查看>>
SUN软件包管理的命令:pkginfo、pkgadd和pkgrm
查看>>
Percona5.6首次提供了审计日志功能
查看>>
读书笔记2013第6本:《棋与人生》(一)
查看>>
浅显理解*nix下的守护进程机制及fork函数
查看>>
顺序查找(改进)
查看>>
umeng社交分享最新版5.0的跨进程使用崩溃的问题及解法-Android
查看>>
IBatis.Net学习笔记系列文章
查看>>
Qt Widgets——主窗口及其主要组成部分
查看>>
UART中的硬件流控RTS与CTS【转】
查看>>
js37---Function.prototype
查看>>
1079: 输出入门
查看>>
EBS adchkcfg.sh 用来检查新旧版本的异同
查看>>
[New Portal]Windows Azure Virtual Machine (13) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (3)...
查看>>
微型项目实践(9):页面的数据访问策略
查看>>
java类中,成员变量赋值第一个进行,其次是静态构造函数,再次是构造函数
查看>>
PowerShell 获取Site Collection下被签出的文件
查看>>
见见面、聊聊天 - 5月22日晚7点Meetup,三里屯绿树旁酒吧,畅谈云技术和应用
查看>>
常用的HTML5、CSS3新特性能力检测写法
查看>>