嗨,大家好奇,如果这是可能的,
目前我有一张桌子:
"(consensus CHAR(40) NOT NULL,"
+ "identityb32 CHAR(40) NOT NULL,"
+ "pubdate CHAR(40) NOT NULL,"
+ "dirport CHAR(6) NOT NULL,"
+ "ip CHAR(40) NOT NULL,"
+ "orport CHAR(40) NOT NULL,"
+ "fingerprint CHAR(40) NOT NULL,"
+ "nick CHAR(40) NOT NULL,"
+ "version CHAR(40) NOT NULL,"
+ "flags VARCHAR(500) NOT NULL,"
+ "identity VARCHAR(256) NOT NULL,"
+ "digest CHAR(40) NOT NULL,"
+ "pubtime CHAR(40) NOT NULL)"
)
我有很多数据插入到这个数据库中,大部分数据都是重复的,但我想要做的是搜索表格,只输出昵称有多个指纹的结果
目前我正在使用代码:
SELECT nick, fingerprint, identity, ip, consensus FROM agorahooawayyfoe group by fingerprint;
要做到这一点,但这显示了我所有昵称组的标识,其中所有2,000个我想要的是将其缩小到仅向我显示昵称具有多于1个身份的结果并且通过这些来分组i
这可以在mysql命令中使用吗?
答案 0 :(得分:2)
如果您想查看具有多个指纹的昵称,请使用聚合并具有:
select nick
from agorahooawayyfoe
group by nick
having count(distinct fingerprint) > 1;
如果您需要详细信息,请将其加入表格:
select a.*
from agorahooawayyfoe a join
(select nick
from agorahooawayyfoe
group by nick
having count(distinct fingerprint) > 1
) n
on a.nick = n.nick;
答案 1 :(得分:0)
我认为您错过having by
明确表示身份必须大于1.请参阅此链接:W3Schools - SQL HAVING Clause