美文网首页
MySQL 确定那些行是彼此互换的

MySQL 确定那些行是彼此互换的

作者: 只是甲 | 来源:发表于2020-11-10 16:38 被阅读0次

备注:测试数据库版本为MySQL 8.0

测试数据:

drop table t2;

create table t2(test1 int,test2 int);

insert into t2 values (20,20);
insert into t2 values (50,25);
insert into t2 values (20,20);
insert into t2 values (60,30);
insert into t2 values (70,90);
insert into t2 values (80,130);
insert into t2 values (90,70);
insert into t2 values (100,50);
insert into t2 values (110,55);
insert into t2 values (120,60);
insert into t2 values (130,80);
insert into t2 values (140,70);

一.需求

一个表中包含两次考试的结果,要确定哪些分数对是互换的。
互换的概念 test1 和 test2的值对调

下面列出表t2的结果集:
mysql> select * from t2;
+-------+-------+
| test1 | test2 |
+-------+-------+
| 20 | 20 |
| 50 | 25 |
| 20 | 20 |
| 60 | 30 |
| 70 | 90 |
| 80 | 130 |
| 90 | 70 |
| 100 | 50 |
| 110 | 55 |
| 120 | 60 |
| 130 | 90 |
| 140 | 70 |
+-------+-------+
12 rows in set (0.00 sec)

检验这些结果,会发现 test1 70和 test2 90的考试分数是互换的(存在test1 90 和 test2 70的行);

要求每对互换行仅找出一个互换对,其结果集应如:

test1 test2
20 20
70 90
80 130

而不是:
test1 test2
20 20
20 20
70 90
90 70
80 130
130 80

二.解决方案

代码:

select distinct v1.*
  from t2 v1,t2 v2
where v1.test1 = v2.test2
  and v1.test2 = v2.test1
  and v1.test1 <= v1.test2;

测试记录:

mysql> select distinct v1.*
    ->   from t2 v1,t2 v2
    -> where v1.test1 = v2.test2
    ->   and v1.test2 = v2.test1
    ->   and v1.test1 <= v1.test2;
+-------+-------+
| test1 | test2 |
+-------+-------+
|    20 |    20 |
|    70 |    90 |
|    80 |   130 |
+-------+-------+
3 rows in set (0.00 sec)

相关文章

  • MySQL 确定那些行是彼此互换的

    备注:测试数据库版本为MySQL 8.0 测试数据: 一.需求 一个表中包含两次考试的结果,要确定哪些分数对是互换...

  • 2021年02月18日-2021年3月2日,白世界桥能量播报

    1、我的目的是什么? 磁性的白世界桥,让更多人彼此认识、资源互换。 2、我的挑战是什么? 月亮的蓝手,思想太快,行...

  • excle一个表格内多个名字分解到单个表格

    1、数据2、分列3、分隔符号4、选择分隔符号5、常规6、确定7、复制一行名字8、选择性粘贴行列互换。

  • Mysql如何行列互换???

    需求:行列互换 请用一条SQL语句查询出这三条记录并按以下条件显示出来大于等于80表示优秀,大于等于60表示及格,...

  • 欺骗

    永远看不清的, 是藏在身后的镜子。 你不懂它, 它亦不懂你。 彼此在两个交织的平面, 互换着谎言。 彼此的心事, ...

  • 角色互换让彼此更理解

    昨晚睡觉前在床上,与儿子和外甥女小熊玩了一个睡前小游戏——角色互换!来谈谈实践感受! 缘于今天一天的出行,看到了小...

  • 你的名字

    身体互换的两个人,体验了截然不同的人生,亦为对方走出不一样的“自己”。在互换停止后,留下的是对对方的牵念,对彼此充...

  • 确定过眼神,彼此是不和的人

    今天我们来说说大学宿舍吧,宿舍6个人,其中有俩个比较有个性的人就称为小y和小s吧!我们的关系呢,就印证了那句话"没...

  • 2020-07-06

    行思致远NO.219‖穷人思维的特点是追求确定性。追求确定性的人很难实现财务自由,那些富人都是在风险里穿梭,乐观地...

  • Homebrew安装MySQL并开机启动

    安装MySQL 确定brew版本 安装MySQL 查看MySQL指引信息 设置开机启动 启动MySQL 该命令同时...

网友评论

      本文标题:MySQL 确定那些行是彼此互换的

      本文链接:https://www.haomeiwen.com/subject/otqtmktx.html