在mysql select子句中,DISTINCT alias.*将执行什么操作

在mysql select子句中,DISTINCT alias.*将执行什么操作,mysql,Mysql,我在MySQL中有一个查询,它从表A中获取数千条记录。 表A没有任何重复的行 我想了解以下不同查询的行为 select distinct alias.* from table A alias; 它将在哪一列上应用? 谢谢假设该表上有唯一的键(或主键),或者没有重复项,那么就什么都没有了。结果集中的每一行都将是唯一的 的MySQL文档指出DISTINCT(或同义词DISTINCTROW)提到DISTINCT只是从结果集中删除重复的行。DISTINCT选择唯一的记录,而不是唯一的字段值 在这个查询

我在MySQL中有一个查询,它从表A中获取数千条记录。 表A没有任何重复的行

我想了解以下不同查询的行为

select distinct alias.* from table A alias;
它将在哪一列上应用?
谢谢

假设该表上有唯一的键(或主键),或者没有重复项,那么就什么都没有了。结果集中的每一行都将是唯一的


的MySQL文档指出
DISTINCT
(或同义词
DISTINCTROW
)提到
DISTINCT
只是从结果集中删除重复的行。

DISTINCT
选择唯一的记录,而不是唯一的字段值

在这个查询中,正如@ydaetskcoR所说,如果您有一个主键
DISTINCT
,那么它是无用的


如果您不这样做,它将只选择一个重复记录。

好的!!我的表
A
中有primary,当我在result中执行上述查询时,我只得到98条记录,但我假设得到100条记录,当我删除
distinct
时,它会给出100条结果。@oomph那么你有两行,它们与表中其余的行有些重复。你必须正确地分析你的数据,看看这两个记录在哪里,如何复制。我在表中有主键,它是
AI
。它一直是AI吗?尝试运行
从表中选择DISTINCT alias.id\u a alias
并查看它是否返回100行。我有点担心的是,您可能在问题中过度简化了示例
SELECT
语句,并且遗漏了一些明显的内容。我们能看到您正在执行的更准确的
SELECT
语句吗?我的详细问题在这个链接中解释好的!!当我在结果中执行上面的查询时,我的表A中有primary,我得到的结果只有98条,但我假设得到100条记录,当我删除distinct时,它会给出100条结果