如何在mySQL中选择等价但反向的元组
我有一个表,有两列,填充了数值:如何在mySQL中选择等价但反向的元组,mysql,database,relational-database,Mysql,Database,Relational Database,我有一个表,有两列,填充了数值: Column1 Column2 1 2 6 9 2 1 9 6 1 3 Tuple(x,y)在我的问题域中相当于Tuple(y,x),我需要执行一个select,在这里我只得到其中一个。也就是说,我想要一个select查询,它返回: Column1 Column2 1 2 6
Column1 Column2
1 2
6 9
2 1
9 6
1 3
Tuple(x,y)在我的问题域中相当于Tuple(y,x),我需要执行一个select,在这里我只得到其中一个。也就是说,我想要一个select查询,它返回:
Column1 Column2
1 2
6 9
1 3
在mySQL中实现这一点的最佳方法是什么?试试以下方法:
select t.*
from table t
where column1 < column2 or
not exists (select 1
from table t2
where t2.column1 = t.column2 and t1.column2 = t.column1
);
如果只有2个值,则可以按总和分组,并使用
min
和max
选择每个值
select min(Column1), max(Column2)
from Table1
group by (Column1+Column2)
试试这个,这个查询会更快
Select Distinct
Case When Column1 >= Column2 Then Column2 else Column1 End as a,
Case When Column1 >= Column2 Then Column1 else Column2 End as b
From #table
Select Distinct
Case When Column1 >= Column2 Then Column2 else Column1 End as a,
Case When Column1 >= Column2 Then Column1 else Column2 End as b
From #table