我使用的是MySQL 5.7.13的MySQL删除基于列的重复数据
我已经在我的数据库以下记录,我想单列的基础上(email_identifier上过滤掉记录)。即在特定列具有重复值的情况下仅返回单个记录。
我想下面的查询,但它抛出以下错误
mysql> select * from list_subscriber where list_master_id = 202 group by email_identifier;
ERROR 1055(42000):表达SELECT列表中的#1是不是在GROUP BY子句中包含非聚合列 'db1.list_subscriber.id'这在功能上不依赖于GROUP BY子句中的列;这是不符合sql_mode = only_full_group_by
理想情况下,查询应该只返回1条记录和与所有列。
请建议我该如何做到这一点?
数据库行样品
mysql> select * from list_subscriber where list_master_id = 202 limit 2\G;
*************************** 1. row ***************************
id: 30518899
list_master_id: 202
unique_identifier: A
email_identifier: [email protected]
mobile_identifier: 9195423432432
alternate_mobile_identifier:
region_identifier:
city_identifier:
country_identifier:
age_identifier:
gender_identifier:
raw_data: {"user":"A","number":"919542342423","msg":"msg3","emailid":"[email protected]"}
created_at: 2016-07-08 15:33:24
updated_at: 2016-08-11 14:55:52
deleted_at: NULL
*************************** 2. row ***************************
id: 30518901
list_master_id: 202
unique_identifier: J
email_identifier: [email protected]
mobile_identifier: 919540077166
alternate_mobile_identifier:
region_identifier:
city_identifier:
country_identifier:
age_identifier:
gender_identifier:
raw_data: {"user":"J","number":"919540077166","msg":"msg4","emailid":"[email protected]"}
created_at: 2016-07-08 15:34:49
updated_at: 2016-08-11 14:55:52
deleted_at: NULL
UPDATE
CREATE TABLE `list_subscriber` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`list_master_id` int(10) unsigned NOT NULL,
`unique_identifier` varchar(512) COLLATE utf8_unicode_ci NOT NULL,
`email_identifier` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`mobile_identifier` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`alternate_mobile_identifier` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`region_identifier` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`city_identifier` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`country_identifier` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`age_identifier` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`gender_identifier` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`raw_data` longtext COLLATE utf8_unicode_ci NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `list_subscriber_list_master_id_foreign` (`list_master_id`),
CONSTRAINT `list_subscriber_list_master_id_foreign` FOREIGN KEY (`list_master_id`) REFERENCES `list_master` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=66956432 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
你可以发布架构和信息“inf inito_staging1.list_subscriber.id“这个? – cody123
@ cody123增加了show create table,让我知道你是否需要其他信息。 –