选择全部但忽略重复项

时间:2014-03-19 15:05:49

标签: mysql sql group-by distinct

我有一个mysql表,其中一个字段将包含重复项。我试图选择所有但忽略此字段中存在重复的所有行。

因此,如果我总共有10行,其中3行有重复,我想返回8行。 7是独一无二的,3个重复中的1个。

我尝试过不同的分组并没有成功。他们忽略了所有3个重复项。

这是我试过的:

SELECT *
FROM directory_listings
GROUP BY url
WHERE status = 'approved'
ORDER BY site_name ASC
LIMIT $start, $per_page

SELECT * DISTINCT url
FROM directory_listings
WHERE status = 'approved'
ORDER BY site_name ASC
LIMIT $start, $per_page

2 个答案:

答案 0 :(得分:3)

  

@AlexW - 它只是专栏' url'哪里可能有重复 - Ruf1 9分钟前

如果您更正语法,则第一个查询将有效 - GROUP BY必须遵循WHEREthe docs}:

SELECT *
FROM directory_listings
WHERE status = 'approved'
GROUP BY url
ORDER BY site_name ASC

Here's an example of a working query in SQL Fiddle.

答案 1 :(得分:1)

SELECT DISTINCT的语法错误:

http://dev.mysql.com/doc/refman/5.6/en/select.html

此外,GROUP BY无法消除重复的唯一原因是WHERE子句取消某些行的资格(即它们在{{1}方面不重复}和status)。