Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么DISTINCT必须在MySQL中先行?_Mysql_Sql_Distinct - Fatal编程技术网

为什么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表示消除重复行。这在列级别没有意义。这就是它留下来的原因。回答标题中的问题:因为老师这么说。