我们知道 mysql是不区分大小写的
但是遇到都是‘zhangsan’时候,会不会懵了呢
假设插入这样一张表,表里到底有几个张三
create table test5(
id int,
name varchar(10)
);
select * from test5;
insert into test5 values(1010,'李四'),
(1006,'王五'),
(1008,'张三'),
(1012,'张三'),
(1011,'李四'),
(1013,'赵六'),
(null,'zhangSan'),
(null,'zhangsAN'),
(null,'zhangsan'),
(null,'Zhangsan');
查询结果是这样:
select count(*), name from test5 group by name ;
一共有2个李四,一个王五,2个张三,1个赵六,4个zhangSan,注意,虽然这边有4个zhangsan,显示哪个呢?默认是显示第一个zhangsan
因此当我们从这张表查询名字不为空且数量大于1时候
SELECT count(*),NAME FROM test5 where name is not null group by name having count(*) >1;
其结果是
SELECT * FROM test5 WHERE NAME IN(
SELECT NAME FROM test5 where name is not null group by name having count(*) >1);
在显示信息的时候就会把4个zhangsan都显示出来