如何从列中删除重复的值?

时间:2012-07-22 11:27:27

标签: sql sqlite

我有一个数据库。 id - 是主键。

id color
1 green
2 red
3 pink
4 pink
5 red

如何在SQL中删除重复的颜色?结果将是:

id color
1 green
2 red
3 pink

3 个答案:

答案 0 :(得分:3)

为了从表中删除重复项,请尝试这样的语句:

DELETE FROM my_table 
WHERE EXISTS (
  SELECT 1 FROM my_table t2
  WHERE my_table.color = t2.color
  AND my_table.id > t2.id
)

英文:删除my_tablemy_table的所有记录,其中{{1}}中有另一条记录,但颜色相同但ID较低。这将使记录保持每个重复颜色的最低ID。

我建议在删除重复项后,您应该添加LolCoder here所指示的唯一约束

答案 1 :(得分:2)

您必须使用DISTINCT以下列方式查找不同的项目:

SELECT DISTINCT(color) FROM colors

如果要从表中删除重复的颜色,

ALTER IGNORE TABLE colors ADD UNIQUE KEY idx1(color); 

答案 2 :(得分:1)

您可以使用DISTINCT() - 语句来实现此目的。 例如:

$sql = "SELECT DISTINCT(color) FROM colors";

更多信息

DISTINCT子句允许您从结果集中删除重复项。 DISTINCT子句只能与select语句一起使用。

来源:TECH on the net