mysql - 查询重复数据,不区分大小重复问题解决
目录
准备数据:
一、未区分大小写查询重复数据
查询重复数据语句:
运行结果:
二、区分大小写查询重复数据
查询重复数据语句:
运行结果:
准备数据:
一、未区分大小写查询重复数据
mysql在查询某一字段的数据是否重复时,如果表的排序规则设置的是以 _ci 结尾的。如 utf8mb4_general_ci ,那么在查询的时候区分大小写是不敏感的,即不区分大小写。
如下图:
查询重复数据语句:
select name ,english_name ,count(*)
from test3
group byenglish_name
havingcount(*) > 1
运行结果:
实际数据库zl只有一个,这里是把ZL大写也算上了,所以会查询出来重复数据。
二、区分大小写查询重复数据
要想解决查询重复数据时区分大小写,那么就需要在查询的时候带上区分大小写的排序规则。
即:在分组的字段后面加上区分大小写的排序规则(collate utf8mb4_bin)。如下代码:
查询重复数据语句:
select name ,english_name ,count(*)
from test3
group byenglish_name collate utf8mb4_bin
havingcount(*) > 1
运行结果:
可以看到查询不到重复数据了,区分查询条件大小写成功了。