mysql - 如何在mySQL中选择等效但倒排的元组

标签 mysql database relational-database

我有一个包含 2 列的表格,其中填充了数值:

Column1     Column2
  1             2
  6             9
  2             1
  9             6
  1             3

元组(x,y)相当于我的问题领域中的元组(y,x),我需要执行一个选择,我只得到其中之一。意思是,我想要一个返回的选择查询:

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
                 );

如果你只想要成对的,即使它们不在原始表中,那么你可以这样做:

select least(column1, column2), greatest(column1, column2)
from table t
group by least(column1, column2), greatest(column1, column2)

关于mysql - 如何在mySQL中选择等效但倒排的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27262864/

相关文章:

php - 分解数组以生成两个变量,以便我可以从数据库表中获取信息以发送电子邮件

mysql - SQL 6 个月内每个用户的平均帖子数

mysql - 我们如何处理在表的所有记录中具有相同值的列?

mysql - 在 SQL 中存储值和单位

php - mysql连接

c# - 实现具有某些限制的 JOIN 的算法

java - SQL 查询中的常量

MySql 关系查询结果

sql - 从 sqlplus 查询中选择顶部行

database - 根据特定日期安排数据库作业