gpt4 book ai didi

mysql - 检测两个 MySQL 列中的重复项(分散在列中的唯一值)

转载 作者:行者123 更新时间:2023-11-29 10:07:35 24 4
gpt4 key购买 nike

我有一个 MySQL 表,其中包含分布在两列中的标识符:

left right
1 2
3 6
4 5

使用SQL如何找出表中是否包含重复的标识符?

例如,上面的例子可以,但下面的例子就不可以:

left right
1 2 <--+
3 6 | Not OK
4 1 <--+

left right
1 2
3 3 <-- Not OK
4 5

left right
1 2
3 6 <--+ Not OK
4 6 <--+

法律上不允许我修改此数据库中的任何内容,所以我的问题不是关于 enforcing在架构中或通过触发器或存储过程我无法修改数据库的架构,而是如何仅使用 SELECT 类型的操作进行检查。

如果是单列,我会写 SELECT left FROM MyTable GROUP BY left HAVING COUNT(*) > 1;但对于两列,我不知道如何继续......

最佳答案

使用UNION ALL 获取一列中左侧和右侧的所有值:

select value
from
(
select left as value from mytable
union all
select right as value from mytable
) all_values
group by value
having count(*) > 1;

关于mysql - 检测两个 MySQL 列中的重复项(分散在列中的唯一值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51590046/

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