您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

MySql:根据列重复值删除表行?

MySql:根据列重复值删除表行?

我认为您可以尝试使用IGNORE添加唯一索引:

ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`column`);

MysqL应该以类似以下内容的方式进行响应:

Query OK, 4524 rows affected (1.09 sec)
Records: 4524 Duplicates: 9342 Warnings: 0

当然,您可以将其留给MysqL来决定删除哪些行。

编辑:

这适用于任意多的列:

ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`col1`, `col2`, `col3`);

查看有关CREATE INDEX的MysqL文档。一个常见的陷阱(至少我曾经碰到过一次)会忘记那NULL = NULL不是真的(而是NULL),因此在两列的UNIQUE索引中允许使用{42,NULL}和{42,NULL}。

MySQL 2022/1/1 18:53:06 有368人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶