mysql distinct row或distinct字段

时间:2012-10-24 08:07:05

标签: mysql distinct

这是否有表现或其他差异:

SELECT distinct(users.id),2 as someFieldName ,0 as someOtherFieldName
From users join ...

和此:

SELECT distinct users.id ,2 as someFieldName ,0 as someOtherFieldName
From users join ...

结果集用作插入语句的一部分,并且由于连接(此处未显示),select可能会多次返回同一用户i.d

我正在使用mysql。

2 个答案:

答案 0 :(得分:4)

没有“明显的领域”这样的东西。您的第一个语法与第二个语法的解析相同:括号仅包围字段表达式。你也可以写:

SELECT DISTINCT (users.id), (2) AS someFieldName, (0) AS someOtherFieldName

它们都是等价的。

如果您想避免对常量列进行比较,可以使用GROUP BY

SELECT   users.id, 2 AS someFieldName, 0 AS someOtherFieldName
FROM     users JOIN ...
GROUP BY users.id

答案 1 :(得分:4)

没有区别,因为此上下文中的DISTINCT仅对行进行操作。

From the SELECT docs

  

ALL和DISTINCT选项指定是否应该有重复的行   回。 ALL(默认值)指定所有匹配的行应该是   返回,包括重复。 DISTINCT指定删除   结果集中的重复行。指定两者都是错误的   选项。 DISTINCTROW是DISTINCT的同义词。