mysql去重语法_MySQL去重数据

导读

DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别。同样可以通过松散索引扫描或者是紧凑索引扫描来实现,当然,在无法仅仅使用索引即能完成 DISTINCT 的时候,MySQL 只能通过临时表来完成。但是,和 GROUP BY 有一点差别的是,DISTINCT 并不需要进行排序。

在使用 MySQL SELECT 语句查询数据的时候返回的是所有匹配的行。

查询 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 值,且没有重复的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值