You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SELECT * FROM TABLE与SELECT DISTINCT * FROM TABLE的区别?

两个SELECT语句的区别及DISTINCT *的作用

这两个查询语句存在区别,并不等价,具体差异和DISTINCT *的作用如下:

  • SELECT * FROM TABLE:会返回表中的所有行,哪怕存在完全重复的整行数据(即每一列的值都一模一样的行),也会全部保留输出。
  • SELECT DISTINCT * FROM TABLE:这里的DISTINCT作用于整行的所有列,它会遍历结果集,自动移除所有完全重复的行,只保留唯一的行。只有当两行的每一列值都完全相同时,才会被判定为重复行并去重。

举个实际例子:假设表中有以下数据

idnameage
1张三20
1张三20
2李四22

用SELECT *会返回全部3行;而用SELECT DISTINCT *只会返回2行,重复的第一行被移除。

注意:如果表有主键(比如唯一的id列),主键会保证每行数据唯一,这时候两个语句的输出结果会一致,但这只是特殊情况,本质上两者的逻辑还是不同的。

内容的提问来源于stack exchange,提问作者Shahid Sarwar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 03:55:33