我有一个数据库。id - 是一个主键。
id color
1 green
2 red
3 pink
4 pink
5 red
如何删除 SQL 中的重复颜色?结果将是:
id color
1 green
2 red
3 pink
为了从您的表中删除重复项,请尝试如下语句:
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
相同颜色但ID较低的记录的记录。这将保留每个重复颜色具有最低 ID 的记录。
我建议在删除重复项后,您应该添加一个唯一约束,如LolCoder 此处所示
您必须使用DISTINCT
以下方式查找不同的项目:
SELECT DISTINCT(color) FROM colors
如果要从表中删除重复的颜色,
ALTER IGNORE TABLE colors ADD UNIQUE KEY idx1(color);
您可以使用DISTINCT()
-statement 来实现这一点。例如:
$sql = "SELECT DISTINCT(color) FROM colors";
更多信息
DISTINCT 子句允许您从结果集中删除重复项。DISTINCT 子句只能与 select 语句一起使用。
资料来源:网络科技