为什么DISTINCT必须在MySQL中先行?
我有一个查询,当我这样做的时候,它会工作为什么DISTINCT必须在MySQL中先行?,mysql,sql,distinct,Mysql,Sql,Distinct,我有一个查询,当我这样做的时候,它会工作 SELECT DISTINCT(table.field.id), 1 FROM ... 但当我这么做的时候失败了 SELECT 1, DISTINCT(table.field.id) FROM ... 这是已知的行为吗 为什么第一个有效而第二个无效?不幸的是,我还不能添加评论 @Gordon Linoff写的完全正确。 在常规工程中,作为SELECT子句或聚合函数的一部分,您将得到不同的错误。它用于从结果集中返回唯一的行,并可用于强制聚合函数中的
SELECT DISTINCT(table.field.id), 1 FROM ...
但当我这么做的时候失败了
SELECT 1, DISTINCT(table.field.id) FROM ...
这是已知的行为吗
为什么第一个有效而第二个无效?不幸的是,我还不能添加评论 @Gordon Linoff写的完全正确。 在常规工程中,作为SELECT子句或聚合函数的一部分,您将得到不同的错误。它用于从结果集中返回唯一的行,并可用于强制聚合函数中的唯一列值 示例:选择DISTINCT*。。。COUNTDISTINCT列或SUMDISTINCT列 有关流行DB引擎中DISTINCT的更多信息: PostgreSQL: SQL Server: 神谕: MySQL:
不幸的是,我还不能添加评论 @Gordon Linoff写的完全正确。 在常规工程中,作为SELECT子句或聚合函数的一部分,您将得到不同的错误。它用于从结果集中返回唯一的行,并可用于强制聚合函数中的唯一列值 示例:选择DISTINCT*。。。COUNTDISTINCT列或SUMDISTINCT列 有关流行DB引擎中DISTINCT的更多信息: PostgreSQL: SQL Server: 神谕: MySQL: DISTINCT不是一个函数。SELECT DISTINCT是SQL语言中的一个子句。SELECT DISTINCT应用于子句中的所有列。DISTINCT表示消除重复行。这在列级别没有意义。这就是它留下来的原因。回答标题中的问题:因为so.DISTINCT不是一个函数。SELECT DISTINCT是SQL语言中的一个子句。SELECT DISTINCT应用于子句中的所有列。DISTINCT表示消除重复行。这在列级别没有意义。这就是它留下来的原因。回答标题中的问题:因为老师这么说。