gpt4 book ai didi

mysql - 从 Mysql 数据库中删除重复条目

转载 作者:行者123 更新时间:2023-11-30 23:40:05 25 4
gpt4 key购买 nike

我有一个包含三列的表,obj1、obj2(均为 varchars)以及对象之间的距离。不幸的是,数据的构造方式使条目数增加了一倍,例如,

obj1      obj2       distance
c1 c2 10.5
c2 c1 10.5

我想要的是能够删除列出的条目之一。我想过并尝试使用 Exists 子句,但没有成功。我想知道这是否需要存储过程?

如有任何帮助,我们将不胜感激!吉姆

最佳答案

mysql> create table doubles(a int,b int,c int);
Query OK, 0 rows affected (0.11 sec)

mysql> insert into doubles values (1,2,10),(2,1,10),(1,3,12),(3,1,12),(2,3,13);
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> select * from doubles;
+------+------+------+
| a | b | c |
+------+------+------+
| 1 | 2 | 10 |
| 2 | 1 | 10 |
| 1 | 3 | 12 |
| 3 | 1 | 12 |
| 2 | 3 | 13 |
+------+------+------+
5 rows in set (0.00 sec)

mysql> DELETE a FROM doubles a JOIN doubles b ON a.a = b.b AND a.b = b.a AND a.a > b.a;
Query OK, 2 rows affected (0.03 sec)

mysql> select * from doubles;
+------+------+------+
| a | b | c |
+------+------+------+
| 1 | 2 | 10 |
| 1 | 3 | 12 |
| 2 | 3 | 13 |
+------+------+------+
3 rows in set (0.00 sec)

最后一个子句 ( a.a > b.a ) 同样可以是 a.a < b.a , 我们只需要决定 double 中的哪一个应该去。

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

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