Mysql查询选择2个具有1个不同的值[重复]

Posted

技术标签:

【中文标题】Mysql查询选择2个具有1个不同的值[重复]【英文标题】:Mysql query select 2 values with 1 Distinct [duplicate] 【发布时间】:2017-11-17 10:59:29 【问题描述】:

我的表结构-

用户名:网站

我只想选择唯一的网站 我试过运行这个查询 -

SELECT DISTINCT username,website from asd  

但它选择了唯一的组合

例子-

John    www.google.com 
Jack    www.google.com 
Tom     www.facebook.com 

查询应返回 John - www.google.com Tom - www.facebook.com

谢谢

【问题讨论】:

为什么不杰克和汤姆,你说约翰应该来的依据是什么? 约翰的记录保留在杰克的记录之上的逻辑是什么? John OR Jack 应该被忽略,因为 google.com 不是唯一的 【参考方案1】:

你可以在你的情况下使用GROUP BY

SELECT username, website FROM asd GROUP BY website

【讨论】:

惊人的解决方案,就像一个魅力。谢谢。【参考方案2】:

当您将DISTINCT 与多于一列一起使用时,它将在成对的列中搜索不同的列。所以你得到的数据是绝对正确的。

对于您的要求,请详细说明为什么需要John 而不是Jack

【讨论】:

John OR Jack 应该被选中,因为 google.com 是重复的 你如何决定是约翰还是杰克? 我猜这取决于mysql的逻辑。我的这个任务不是那么重要,所以我可以把它留给mysql来选择。但我也想知道如何决定

以上是关于Mysql查询选择2个具有1个不同的值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如果该行具有超过 1 个相同的值/重复,则从选择中排除行

使用来自选择的值的Mysql更新[重复]

选择其中所有内容的Mysql列只有2个结果中有1个

MySQL - 在一个查询中更新具有不同值的多行

mysql查询以查找具有班级组合的学生[重复]

当同一列中的值不匹配但不同列重复时将返回结果的 SQL 查询