我有一個用戶表,其中包含以下列,並且我已經提出了一個基於名字和姓氏的重複記錄查詢。MYSQL查詢根據名字和姓氏查找重複記錄
表結構
CREATE TABLE IF NOT EXISTS `User` (
`id` bigint(20) NOT NULL,
`address1` text COLLATE utf8_unicode_ci,
`mobile` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
`name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
`firstName` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
`lastName` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
`username` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
`password` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
`email` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
`gender` tinyint(2) NOT NULL DEFAULT '0' COMMENT '1 - female, 2-male, 0 - unknown',
`zip` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
`countryCode` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,
`joinedDate` datetime DEFAULT NULL,
`dateOfBirth` date DEFAULT NULL COMMENT 'User date of birth'
) ENGINE=MyISAM AUTO_INCREMENT=63561 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
和我的查詢
SELECT id, firstName, lastName, mobile, email, count(*) as dupCount
FROM `User` `t`
WHERE firstName is not null and lastName is not null
GROUP BY firstName,lastName HAVING count(*) > 1
ORDER BY t.joinedDate DESC
下面
是結果的截圖當我運行查詢
,我的數據集是在這裏http://pastebin.com/Y5qsTcFc
抱歉,如果粘貼bin不起作用。試試這個https://drive.google.com/file/d/0B3gG6MG9uh7KdmRGT3d0NWg2aVk/view?usp=sharing
當有電子郵件地址爲NULL的記錄時,我們有問題。我總是得到這個錯誤。
1062 - 重複項 '雷切爾 - Besnainou' 關鍵 'group_key'
查詢我跑是:
SELECT id, firstName, lastName, mobile, email, count(*) as dupCount
FROM `User` `t`
WHERE firstName is not null and lastName is not null
GROUP BY firstName,lastName
HAVING count(*) > 1
我不知道爲什麼這個錯誤出現。任何幫助讚賞
更新1
我嘗試把它添加到我的數據庫,並運行查詢它仍然是一樣的
SET SESSION max_heap_table_size=536870912;
SET SESSION tmp_table_size=536870912;
裁判:Duplicate entry for key 'group_key'
更新2
我在d中試過同一個數據庫iff mysql和phpmyadmin版本,它的工作。所以看起來像我的mysql版本有一個錯誤。我的MySQL版本是26年6月5日
您設置引擎收錄到期。要麼刪除到期或在問題中粘貼您的代碼。 –
@ Fred-ii-對不起,我從谷歌驅動器更新了它。請再次看到問題 – dev1234
我認爲這是不是一個好主意,發佈名稱+電子郵件的完整的SQL轉儲 – mirko911