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