0
我有一个具有以下字段的表:这是否正确的语句来检查重复值?
domainname | domian_name_cert_no | keyvalue
的domian_name_cert_no
是独特的,它有一个计数器结束; 1,2,3等。有可能两个或多个domian_name_cert_no
共享keyvalue
。我需要列出这些案例。因此,我有以下陈述在第一个domian_name_cert_no
中列出keyvalue
的出现次数(即no = 1,我不关心_2和_3中的重复项)。
select domainname, domian_name_cert_no, count(keyvalue), keyvalue
from db.table
where domian_name_cert_no like '%_1'
group by (keyvalue)
having count(keyvalue)>1;
假设一个输出,如: XYX,xyx_1,10,777
然后,根据前面的输出,我知道有10个发生,现在我需要列出已经共享这些域名keyvalue
详细,所以我用:
SELECT a.*
FROM db.table a
INNER JOIN
(
SELECT keyvalue
FROM db.table
GROUP by keyvalue
HAVING COUNT(keyvalue) = 10
) b
ON a.keyvalue = b.keyvalue;
是根据我的需要解释这些正确的语句?我并不确定我在第二个陈述中做了什么:HAVING COUNT(keyvalue) = 10
。
MySQL专家请向我确认这些陈述是否正确。
是的。第二个查询是列出具有该键值的所有记录。例如,在第一个查询中,如果我有10个记录有一个特定的键值,这个查询就会为我列出它们。我会尝试你的第一个查询。 – 2012-08-08 20:06:40
当我编辑第一条语句就像你所建议的那样,我得到了0个结果,而不是这种情况。我会给你一个存储值外观的例子。这些专栏在我之前的文章中有说明。假设存储的值如下:1)a.yahoo.com,a.yahoo.com_1,222,2)a.yahoo.com,a.yahoo.com_2,333,3)a.yahoo.com,a.yahoo。现在因为我有'domian_name_cert_no'内容:a.msn.com_1与另一个'domian_name_cert_no'内容具有相同的'keyvalue':a.msn.com_1 a.msn.com,a.msn.com_1,222. – 2012-08-10 09:38:17
.yahoo.com_1,这里我需要计数器为2来告诉我这个关键值发生了两次。在第二个查询中,我需要列出所有'domian_name_cert_no'内容以及共享某个'keyvalue'的corressponding'domainname',在我们的例子中为222。 – 2012-08-10 09:39:23