1.分析需求
因为一般,mysql建表的时候都是有单调递增id的,所以去重需求可以以这个id为着重点。假设我们对以下这张测试表操作
这个时候是不是就有思路了?我们可以通过max(id)加group by的形式来进行去重以下是具体代码实现。
2.代码实现
public class Test {
public static void main(String[] args) throws Exception {
//1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//table_name写你的表名
String url = "jdbc:mysql://localhost:3306/table_name";
String username = "your_username";
String password = "your_password";
//2.建立连接
Connection connection = DriverManager.getConnection(url, username, password);
//字段的话请灵活修改。
String sql = "DELETE FROM table_name where id not in (SELECT id from (SELECT max(id) as id FROM test GROUP BY name,age)t1)";
//创建执行环境
Statement statement = connection.createStatement();
statement.execute(sql);
statement.close();
connection.close();
}
}
就是jdbc那一套,不要忘了导入连接mysql的jar包。实现是不是非常简单呢。SELECT id那块套了个子查询的原因是因为不套会报错~希望可以帮助大家。