Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mySQL中选择等价但反向的元组_Mysql_Database_Relational Database - Fatal编程技术网

如何在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