gpt4 book ai didi

mysql - 删除mysql中的行

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:06 24 4
gpt4 key购买 nike

如果我有一张 table :

id1       id2       count
A A 1
A B 2
A C 1
B A 3
B B 1
B C 2
C A 3
C B 2
C C 1

删除后我想要的:

id1       id2       count
A A 1
A B 2
A C 1

B B 1
B C 2


C C 1

这意味着如果我有 A(id1) --> B(id2) 然后删除 B(id1) --> A(id2)。与 B(id1) --> C(id2) 相同,然后删除行 C(id1) --> B(id2)

谢谢你的帮助!

最佳答案

  • 在这种情况下,我们分析 Target.id1 > Target.id2 均值情况,如 (B, A, ??) 其中 B > A
    • 这也会忽略像 (A, A, ??)
    • 这样的情况
  • 然后使用 self left join 尝试通过 (A, B, ??) 找到另一行
  • 如果找到匹配项,则 Source.id1 IS NOT NULL 并删除

SQL Fiddle Demo

DELETE Target 
FROM Table1 Target
LEFT JOIN Table1 Source
ON Target.`id1` = Source.`id2`
AND Target.`id2` = Source.`id1`
AND Target.`id1` > Target.`id2`
WHERE Source.`id1` IS NOT NULL;

输出

| id1 | id2 | count |
|-----|-----|-------|
| A | A | 1 |
| A | B | 2 |
| A | C | 1 |
| B | B | 1 |
| B | C | 2 |
| C | C | 1 |

关于mysql - 删除mysql中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36638100/

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