Sql 如何在不重复的情况下获取所有记录

Sql 如何在不重复的情况下获取所有记录,sql,duplicates,Sql,Duplicates,大家好,我正在尝试获取所有不重复的记录 这里是我的示例数据库记录 (`id`, `productName`, `description`) ----------------------------------------------- (1, 'OpenIDM', 'Platform for building enterprise provisioning solutions'), (2, 'OpenAM', 'Full-featured access managemen

大家好,我正在尝试获取所有不重复的记录

这里是我的示例数据库记录

   (`id`, `productName`, `description`)
   -----------------------------------------------
   (1, 'OpenIDM', 'Platform for building enterprise provisioning solutions'),
   (2, 'OpenAM', 'Full-featured access management'),
   (3, 'OpenDJ', 'Robust LDAP server for Java'),
   (4, 'OpenDJ', 'Robust LDAP server for Java')  !!This line should not appear after SQL result
我想用SQL得到什么

   (`id`, `productName`, `description`)
   -----------------------------------------------
   (1, 'OpenIDM', 'Platform for building enterprise provisioning solutions'),
   (2, 'OpenAM', 'Full-featured access management'),
   (3, 'OpenDJ', 'Robust LDAP server for Java'),
这是我针对这个主题的SQL代码片段

select productName 
from ForgeRock
WHERE productName in (select productName from ForgeRock group by productName having count(*)>1)


我怎样才能得到没有重复项的所有元素?谢谢你的帮助

对id的值有特殊要求吗

一个简单的
MIN()

SELECT MIN(`id`),
  `productName`,
  `description`
FROM ForgeRock
GROUP BY `productName`, `description`

一种方法是获取最小id的数据

select min(`id`),`productname`,`description` from forgerock
group by `productname`, `description`

我认为你必须使用不同的语言

select distinct productName,description from ForgeRock;
这是小提琴上的mi结果:

您是要删除重复项,还是只是查询并删除它们?如果是前者,那么一个简单的谷歌“删除重复的mysql”可能会给你很多答案,我不想删除它们。只有我想展示?数据库中添加了多少值。从这个示例中,我想得到计数3,但我的SQL查询给了我4当我将代码写入SQLFIDLE时,它给了我奇怪的结果。你可以在这里看到我正在检查我的手机(耶,阻止代理),但似乎你用简单的引号替换了我的反引号。你能检查一下吗?是的,用backquates时sqlfiddle不起作用。sqlfiddle可以使用简单的引号,也可以使用反引号,这是MySQL语法的一部分。您确定要使用0x60字符吗?这样做将无法检索
id
字段,即使在一组重复的“(
productName
说明
)中,每一行的字段也不同`