【发布时间】:2016-01-23 23:00:40
【问题描述】:
我正在使用此命令在我的数据库中查找city 列中具有相同值的记录:
SELECT city, COUNT(*) c FROM allCity GROUP BY city HAVING c > 1;
当我在 PhpMyAdmin 中运行它时,我得到一个包含两列的巨大列表,第一列是 city,第二列是 c。我假设c 列中的数字显示了重复条目的数量,但我无法真正列出重复项,但也许不需要。
所以我的目标是从运行上述命令后得到的列表中删除所有重复项。不幸的是,这是我第一次使用 sql 命令,因此如果有人能告诉我应该如何扩展我现有的代码或者我应该实现什么才能做到这一点,我将非常感激?基本上我只想删除city 列具有相同值的每条记录,除了第一条记录。例如,如果我有 3 条记录,在 city 列中的值为 New York,我想删除两条并保留一条。删除哪两个无关紧要。
【问题讨论】:
-
有几种解决方案。但是重要的信息,你的表有一些 id / 主键?
-
@JuanCarlosOropeza 是的,我有一个名为
objId的列,因此每条记录都有一个唯一标识符。 -
如果您只是选择
city列,您可以执行SELECT DISTINCT city FROM allCity;,它将为您提供city列的所有唯一值。然而,我觉得这里试图解决一个不同的问题,而不仅仅是这个。如果您发布了确切的问题,这将很有帮助。如果没有,这应该会让你继续前进。 -
@munircontractor - 这是问题所在,.. 我刚刚开始编写 sql 代码,所以我的问题很简单 :)