我有以下MySQL表:
CREATE TABLE `batch_data` (
`group_name` varchar(200) NOT NULL,
`keyword_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`keyword_type` varchar(20) NOT NULL,
`keyword_category` varchar(20) NOT NULL,
`group_category` varchar(20) NOT NULL,
`keyword_content` varchar(100) NOT NULL,
UNIQUE KEY `group_name` (`group_name`,`keyword_name`,`keyword_type`,`keyword_category`,`group_category`,`keyword_content`),
UNIQUE KEY `Keyword_name_UNIQUE` (`keyword_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='keywords'
我在keyword_name列上添加了一个唯一约束,尽管MySQL允许在列中插入重复值。
约束条件适用于英语单词,但对于任何非拉丁文本,如阿拉伯语或希伯来语,它不会。
更重要当我在表上执行以下查询时,它没有显示没有重复的记录:
select keyword_name, count(1) from batch_data
group by keyword_name
having count(1) > 1;
但是,当我在Excel中导出数据并使用条件格式来突出显示重复项时,它会过滤许多重复的值。
任何帮助?