mysql 删除可以用子查询吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 删除可以用子查询吗相关的知识,希望对你有一定的参考价值。

select * from orderbrand1 where Cname in (select Cname from orderbrand1 group by Cname having count(1)>1)
用select查询可以
delete * from orderbrand1 where Cname in (select Cname from orderbrand1 group by Cname having count(1)>1)
但用delete删除就不行了
两句只是把select换成了delete,就报错
呵呵,低级错误,谢谢啊
但还是没有成功,提示
#1093 - You can't specify target table 'orderbrand1' for update in FROM clause
是不能在修改的本表内子查询的意思吗?

还是不行,手删算了,好在只有几十条记录。谢谢啊!

mysql 删除可以用子查询。
mysql删除子查询中的记录语句:
Sql代码
delete from t_5star where locationid in (
select e.locationid from (
select a.* from t_5star as a ,
t_als_data as b where a.term = b.term ) e
)
关键是子查询中的语句要放到单一e的表中。

比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
Select Name,Count(*) From A Group By Name Having Count(*) > 1
如果还查性别也相同大则如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1
参考技术A 兄弟,要把那个*去掉
delete from orderbrand1 where Cname in (select Cname from orderbrand1 group by Cname having count(1)>1)

补充:
MYSQL好像确实不能更新用了in子句的SQL的,我上次也遇到过一次,搞了两天,最后也只能妥协。
楼主试试这句看看:
delete from orderbrand1 t1,(select Cname from orderbrand1 group by Cname having count(1)>1) t2 where t1.Cname=t2.Cname本回答被提问者采纳

可以删除99G mysql表没有效果吗?

我想删除一个99G的mysql表A,表A现在没用了,可以执行cmd'drop table A'。我希望对其他表的操作没有影响。

答案

有时候丢弃一个大表会锁定InnoDB缓冲池一段时间,同时它会清除该表的页面。

出于这个原因,在我公司“删除”一个表时,我们只是将其重命名,并将其移动到另一个模式。我们将它单独留下7天,以允许对其他表的查询逐渐从缓冲池中逐出表格的页面。然后我们放弃无用的表。

我们在比你大得多的桌子上做到这一点,有时高达10倍。

如果你的桌子已经有几天没用了,你现在可以放弃它。

以上是关于mysql 删除可以用子查询吗的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的更新语句update中可以用子查询吗?

MySQL 的子查询和left join的比较,啥时候用子查询效率高,啥时候用left join效率高?

mysql sql优化的一些总结

JOINS 和 SUBQUERIES 有啥区别?我们可以用连接做的任何事情都可以用子查询来完成,反之亦然? [复制]

mysql知识点

MySQL在字段中使用select子查询(转)