mysql中去重数据 DISTINCT 用法
程序员文章站
2024-03-01 16:30:52
...
一、基本使用
distinct
一般是用来去除查询结果中的重复记录的,而且这个语句在select
、insert
、delete
和update
中只可以在select
中使用,具体的语法如下:
select distinct expression[,expression...] from tables [where conditions];
这里的expressions可以是多个字段
例如,查询 tb_students_info 表中所有 age 的执行结果如下所示。
mysql> SELECT age FROM tb_students_info; +------+ | age | +------+ | 25 | | 23 | | 23 | | 22 | | 24 | | 21 | | 22 | | 23 | | 22 | | 23 | +------+ 10 rows in set (0.00 sec)
可以看到查询结果返回了 10 条记录,其中有一些重复的 age 值,有时出于对数据分析的要求,需要消除重复的记录值。这时候就需要用到 DISTINCT 关键字指示 MySQL 消除重复的记录值,语法格式为:
SELECT DISTINCT <字段名> FROM <表名>;
查询 tb_students_info 表中 age 字段的值,返回 age 字段的值且不得重复,输入的 SQL 语句和执行结果如下所示。
mysql> SELECT DISTINCT age FROM tb_students_info; +------+ | age | +------+ | 25 | | 23 | | 22 | | 24 | | 21 | +------+ 5 rows in set (0.11 sec)
由运行结果可以看到,这次查询结果只返回了 5 条记录的 age 值,且没有重复的值。
2、 对多列进行操作
select distinct country, province from person
结果如下:
从上例中可以发现,当distinct
应用到多个字段的时候,其应用的范围是其后面的所有字段,而不只是紧挨着它的一个字段,而且distinct
只能放到所有字段的前面,如下语句是错误的:
SELECT country, distinct province from person; // 该语句是错误的
抛出错误如下:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘DISTINCT province from person’ at line 1
推荐阅读
-
mysql查询数据去重
-
mysql中去重数据 DISTINCT 用法
-
浅谈mysql数据库中的using的用法
-
MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解
-
MySQL中distinct与group by语句的一些比较及用法讲解
-
PHP使用mysql与mysqli连接Mysql数据库用法示例
-
MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解
-
MySQL中distinct与group by语句的一些比较及用法讲解
-
group by 用法解析 博客分类: mysql数据库 mysql数据库
-
mysql load data infile 的用法(40w数据 用了3-5秒导进mysql)