我有一个表create
,只有一个名为name
type 的列varchar(16)
。
现在我想删除所有重复的名字,只留下一个。
例子:
name1
name2
name3
name3
name3
name4
之后将是
name1
name2
name3
name4
请指教。
我四处寻找查询,但大多数可用查询都与索引有关。
我有一个表create
,只有一个名为name
type 的列varchar(16)
。
现在我想删除所有重复的名字,只留下一个。
例子:
name1
name2
name3
name3
name3
name4
之后将是
name1
name2
name3
name4
请指教。
我四处寻找查询,但大多数可用查询都与索引有关。
使用 row_number
WITH cte
AS
( SELECT name, row_number() OVER ( PARTITION BY name ORDER BY name ) AS row_num
FROM yourTable
)
DELETE FROM cte
WHERE row_num > 1
MySQL 中的索引是数据库引擎有效分区和排序数据的一种方式,以便您的查询更高效。索引允许您做的一件事是指定特定的数据列或字段仅包含唯一条目。创建这样的索引将禁止添加已存储的数据。
如果您已经有一个没有索引的列,我建议您清除重复项的一种方法是使用临时表。通过从原始表中选择所有唯一(不同)名称来创建临时表。然后删除原始表中的所有内容,并将记录复制回来。此时,请考虑添加索引。