我想删除不是来自特定值集的值。我事先不知道这些值。我可以通过查询这些值来了解它们,并且我想一步完成这个过程。我做了以下声明:
delete from db.table1 where domain not in
(
select distinct domainname
from db.table1
where domainname like '%.uci.edu'
group by keyvalue
order by domainname
)
and domainanme like '%.uci.edu';
知道这domainname
是一个唯一的字段,而主键table1
是auto_increment
数字。
我需要做的是:我有一个域名列表。说:aa.yahoo.com、bb.yahoo.com、cc.yahoo.com、aa.msn.com。每个域名都有一个键值。如果密钥是共享的,我想删除这条记录。因此,我选择了按键值分组的不同值。如果记录不在不同的集合中,并且具有相同的顶级域,那么我不需要它。
我的查询可能是错误的。SQL给了我error: 1093: you can' specify target table table1 for update in FROM clause.
请以任何有效的方式帮助实现这一目的。我有一个很长的剪切顶级域名列表,我只需要具有不同键值的域名。如果有一个通用的解决方案可以做到这一点,而无需逐个处理每个域名(如我的示例),那就更好了。
编辑: domainname
不是唯一字段。我使用另一个字段:domainnameNo
作为唯一字段