no comments yet
14 May 2018

MySQL中删除重复记录,只保留Id最小的一条

表结构为:

+--------+--------------+------+-----+---------+----------------+
| Field  | Type         | Null | Key | Default | Extra          |
+--------+--------------+------+-----+---------+----------------+
| id     | int(255)     | NO   | PRI | NULL    | auto_increment |
| url    | varchar(255) | NO   |     | NULL    |                |
| mdnum  | bigint(255)  | NO   | UNI | NULL    |                |
| status | int(255)     | NO   |     | 0       |                |
+--------+--------------+------+-----+---------+----------------+

目前想到的最简单快捷的方法:

按关键键值分组,把最小id的记录保存到临时表:

create table temp2 as select min(id),url,mdnum,status from small_pic_index group by mdnum;

删除min(id)字段,新建id字段,然后再删除原表,把临时表改成原表名就好了。