我有一个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
答案 0 :(得分:3)
@AlexW - 它只是专栏' url'哪里可能有重复 - Ruf1 9分钟前
如果您更正语法,则第一个查询将有效 - GROUP BY
必须遵循WHERE
(the docs}:
SELECT *
FROM directory_listings
WHERE status = 'approved'
GROUP BY url
ORDER BY site_name ASC
答案 1 :(得分:1)
SELECT DISTINCT
的语法错误:
http://dev.mysql.com/doc/refman/5.6/en/select.html
此外,GROUP BY
无法消除重复的唯一原因是WHERE
子句取消某些行的资格(即它们在{{1}方面不重复}和status
)。