gpt4 book ai didi

mysql - 从表mysql中删除所有b,a

转载 作者:行者123 更新时间:2023-11-29 02:00:58 24 4
gpt4 key购买 nike

我有一个包含 3 个字段的表,如下所示

id  a  b
1 1 2
2 1 3
3 2 1
4 2 3
5 3 1
6 3 2

(a,b) 和 (b,a) 都存在于该表中(a=1 and b=2 and a=2 and b=1)。我需要从上表中删除所有 (b,a)。

Output:

id a b
1 1 2
2 1 3
4 2 3

我试过这样的自连接

select v1.id, v2.id from val v1,val v2 where v1.a=v2.b and v1.b=v2.a

并找到匹配的对应id。但是,此后无法继续。请帮忙。

最佳答案

如果你想永久删除那些重复的记录,这里是使用MySQL的LEASTGREATESTDELETE语句> 内置函数。

DELETE  a
FROM tableName a
LEFT JOIN
(
SELECT LEAST(a, b) aa,
GREATEST(a,b) bb,
MIN(ID) min_ID
FROM tableName
GROUP BY aa, bb
) b ON a.ID = b.min_ID
WHERE b.min_ID IS NULL

SELECT 语句

SELECT  *
FROM tableName
WHERE (LEAST(a, b),GREATEST(a,b), ID)
IN
(
SELECT LEAST(a, b) aa,
GREATEST(a,b) bb,
MIN(ID) min_ID
FROM tableName
GROUP BY aa, bb
)

关于mysql - 从表mysql中删除所有b,a,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15050377/

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