2017-02-23 34 views
-2

[我有一個表用戶,有一個唯一的鍵用於創建5列唯一的密鑰(USER_NAME-EMAIL_ID-DOB-phone_no地址)。]查找數據庫中的重複行如果唯一鍵(col1-col2-col3-col4-col5)通過使用5列,使用默認空值的第五列構建

CREATE TABLE `users` (
`id` INT(11) NOT NULL AUTO_INCREMENT, 
`user_name` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'utf8_bin', 
`email_id` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'utf8_bin', 
`dob` DATE NOT NULL, 
`phone_no` BIGINT(20) NOT NULL DEFAULT '0', 
`address` VARCHAR(25) NULL DEFAULT NULL COLLATE 'utf8_bin', 
PRIMARY KEY (`id`), 
UNIQUE INDEX `user_name` (`dob`, `address`, `phone_no`, `user_name`, `email_id`) 
) 

COLLATE='utf8_bin' 
ENGINE=MyISAM 
AUTO_INCREMENT=13 
; 

如表用戶上傳早些時候批量數據通過csv文件使用忽略重複選項。並在列地址插入空值的數據,

現在我想檢查我的用戶表中重複的唯一鍵數據。

id|user_name|email_id|dob|phone_no|address| 
1|roy|[email protected]|42768|9992223|null| 
2|roy|[email protected]|42768|9992223|null| 
3|roy|[email protected]|42768|9992223|null| 
4|roy|[email protected]|42768|9992223|null| 
5|roy|[email protected]|42768|9992223|null| 
6|roy|[email protected]|42768|9992223|null| 
7|me|[email protected]|42797|7897897899|null| 
8|me|[email protected]|42798|7897897900|null| 
9|me|[email protected]|42799|7897897901|null| 
10|me|[email protected]|42800|7897897902|null| 
11|st|[email protected]|42495|1122121212|null| 
12|mr|[email protected]|42129|141414|null| 
13|mr|[email protected]|42129|141414|null| 
14|mr|[email protected]|42129|141414|null| 
15|mr|[email protected]|42129|141414|null| 
16|mr|[email protected]|42129|141414|null| 
17|mr|[email protected]|42129|141414|null| 
18|mr|[email protected]|42129|141414|null| 
19|mr|[email protected]|42129|141414|null| 
20|mr|[email protected]|42129|141414|null| 
+2

獨特的關鍵數據永遠不會有重複 –

+0

[答案這裏分貝不可知(http://stackoverflow.com/questions/2112618/finding-duplicate -rows式-SQL服務器)。大概你也[想刪除行](http://stackoverflow.com/questions/3311903/remove-duplicate-rows-in-mysql) –

+0

@AksheyBhat如果要強制插入數據,我會插入 –

回答

-1

選擇所有重複行:

SELECT dob 
     ,phone_no 
     ,user_name 
     ,email_id 
FROM users 
GROUP BY dob 
     ,phone_no 
     ,user_name 
     ,email_id 
HAVING COUNT(*) > 1 
+0

但是如果記錄輸入多次。我如何在單一時間查詢中獲得 –

相關問題