MySql:检查并删除重复的行

fam*_*oro 2 mysql duplication

  • 如何检查表是否包含重复的行,并且这对值(日期、时间)相同?
  • 如何删除除一行之外的所有内容?
  • Id 是一个连续的数字,我在每次发布后都会增加它,如何在删除一行后恢复它?

tableTen是:

+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | YES  |     | NULL    |       |
| symbol    | varchar(25) | YES  |     | NULL    |       |
| date      | date        | YES  | MUL | NULL    |       |
| time      | time        | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)

小智 5

1. 如何检查表中是否包含重复行,且该对(日期、时间)的值相同?

SELECT *  FROM db.table HAVING COUNT(symbol) > 1 
Run Code Online (Sandbox Code Playgroud)

2. 如何删除除一行之外的所有行?

a) 如果要保留 id 值最小的行:

DELETE n1 FROM table n1, table n2 WHERE n1.id > n2.id AND n1.symbol= n2.symbol
Run Code Online (Sandbox Code Playgroud)

b) 如果要保留 id 值最高的行:

DELETE n1 FROM table n1, table n2 WHERE n1.id < n2.id AND n1.symbol= n2.symbol
Run Code Online (Sandbox Code Playgroud)

3. Id是一个连续的数字,我在每次发布后都会增加它,如何在删除一行后恢复它?

请尝试http://befused.com/mysql/reset-auto-increment