赞
赏
在执行 select 的时候,它会将所有匹配到的行获取出来,但是如果有很多数据都一样,你不想看到重复的数据,该怎么办呢?这个时候就可以使用 mysql 里面的 distinct 关键字。
在进行本节的讲解的时候,我们新建一张学生表,并在里面插入几条记录。
CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `stu_no` int(11) DEFAULT NULL, `stu_name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在里面插入几条记录
INSERT INTO student (`id`,`stu_no`,`stu_name`,`age`) VALUES (1,1001,'小明',17), (2,1002,'小红',16), (3,1003,'小军',18), (4,1004,'小亮',19), (5,1005,'小亮',19), (6,1006,'小杰',16), (7,1007,'小亮',20);
数据库查询到的结果如下
查询不同值
语法
select distinct 列名1,列名2.... from 表名。
描述
关键字 描述 select 查询 mysql 表的关键字 distinct 查询不同语句的关键字,它对在它后面列出的所有列生效,表示后面所有的列的元素不一样 列名 需要查询出来的列 from 查询一张表的关键字,放在表的前面 表名 被查询的表名 说明
查询不同的值,其实和 select 语法差不多,只不过它在需要不同数据的列的前面加了 distinct 关键字。distinct 关键字需要放在列的最前面。
案例
select distinct stu_name,age from student;
运行结果如下
我们可以看到查询的结果将
stu_name
和age
两个字段组合不同的数据获取出来。distinct 对后面的所有列都有效。我们再看下查询 stu_name 单列的效果