MySQL DISTINCT函数不起作用

时间:2015-01-29 18:57:11

标签: mysql unique distinct

使用MySQL。以下SQL语句完美运行:

SELECT a.ID, a.DISPNAME, a.UNIT_TYPE, a.MODELNUM, a.DESCRIP, a.DATE_ADDED, b.TYP, c.FIRSTNAME, c.LASTNAME FROM jobs_engineering a INNER JOIN unit_types b ON a.UNIT_TYPE=b.ID INNER JOIN users c ON a.AEID=c.USERID ORDER BY a.DATE_ADDED DESC

但是现在我只想要列DISPNAME的唯一记录,因为该列有多个重复值。我添加了DISTINCT方法

SELECT a.ID, DISTINCT(a.DISPNAME), a.UNIT_TYPE, a.MODELNUM, a.DESCRIP, a.DATE_ADDED, b.TYP, c.FIRSTNAME, c.LASTNAME FROM jobs_engineering a INNER JOIN unit_types b ON a.UNIT_TYPE=b.ID INNER JOIN users c ON a.AEID=c.USERID ORDER BY a.DATE_ADDED DESC

但这不起作用。 MySQL告诉我我的错误接近“DISTINCT”

我试过了:

 a.DISTINCT(DISPNAME)
 DISTINCT(DISPNAME)

这些都不起作用

我的错误在哪里?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:10)

DISTINCT不是函数,而是查询装饰器。这意味着,如果您希望查询压制所有重复项,则使用SELECT DISTINCT而不是SELECT

现在重要的部分是,一行是另一行的副本,if(和 if)所有列都具有相同的值。

您想要达到的目标通常是

  • 在相关列上使用GROUP BY并使用拟合聚合函数
  • 使用具有LIMIT 1
  • 的子查询