1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > mysql的delete语句使用exists删除数据走不通

mysql的delete语句使用exists删除数据走不通

时间:2023-01-10 05:58:06

相关推荐

mysql的delete语句使用exists删除数据走不通

mysql中,打算使用exists查找相关记录,然后删除,结果搞不定。

我们有个表folder,里面有个字段code存在重复值,本来编码应该是唯一的。因此想将重复记录删除。

这样

delete from folder fd1 where exists(select 1 from folder fd2 where id<>fd1.id and code=fd1.code);

不行!

这样

delete from folder where id in(select id from folder fd1 where exists(select 1 from folder fd2 where id<fd1.id and code=fd1.code));

还是不行!

查找网上的例子:

DELETE tbFROM tb LEFT JOINtb tb2ON tb2.`merchantId` = 'A32WNPGI8GE4WW' ANDtb2.`marketplaceId` IN ('A1AM78C64UM0Y8', 'A2EUQ1WTGCTBG2', 'ATVPDKIKX0DER')WHERE tb2.merchantID IS NULL;

我去,这是什么鬼,看不懂。

心一横,使出绝招,先将重复记录的ID保存进临时表,然后结合该临时表删除,最后打扫战场,删除临时表,深藏功与名。

create temporary table tmp_folder_id as select id from folder fd1 where exists(select 1 from folder fd2 where id<fd1.id and code=fd1.code);delete from folder where id in(select id from tmp_folder_id);drop table tmp_folder_id;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。