gpt4 book ai didi

mysql - 删除mysql数据库中重复的ip地址条目

转载 作者:行者123 更新时间:2023-11-29 04:49:56 26 4
gpt4 key购买 nike

我的数据库中有重复的 IP 地址记录,如下所示:

id | ipaddress
1 192.168.xxx.xxx
2 192.168.xxx.xxx
3 111.118.xxx.xxx
4 111.118.xxx.xxx

我想在我的领域中使用唯一的 IP 地址。我应该如何删除所有重复条目?

谢谢

最佳答案

在 MySQL 中删除重复项有点棘手,因为该表不能在子选择中引用的愚蠢限制。因此需要将子选择重写为连接:

DELETE d
FROM mytable d
LEFT JOIN (
SELECT min(id) as min_id
FROM mytable
GROUP BY trim(ipaddress)
) tokeep ON tokeep.min_id = d.id
WHERE keep.min_id IS NULL;

SQLFiddle 演示:http://sqlfiddle.com/#!2/9cfb9c/1

编辑

实际上有一种方法可以绕过愚蠢的子选择限制。如果表被包装到子选择内的派生表中,MySQL 解析器不会注意到这一点并愉快地使用子选择删除:

delete mt 
from mytable mt
where exists (
select *
from (
select id, ipaddress
from mytable
) ex
where TRIM(ex.ipaddress) = TRIM(mt.ipaddress)
and ex.id < mt.id
)

关于mysql - 删除mysql数据库中重复的ip地址条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13099892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com