我有一个数据库。 id - 是主键。
id color
1 green
2 red
3 pink
4 pink
5 red
如何在SQL中删除重复的颜色?结果将是:
id color
1 green
2 red
3 pink
答案 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_table
中my_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语句一起使用。