mysql 删除可以用子查询吗

来源:百度知道 编辑:UC知道 时间:2024/06/14 16:05:43
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

兄弟,要把那个*去掉
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