`

MySQL SQL001- 重复记录的处理

 
阅读更多

一、建立测试环境

1.1. 建立表格

CREATE TABLE books (
  book_id INT AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(50),
  pub_year VARCHAR(4),
  author VARCHAR(50)
);

1.2. 建立测试数据文件,books.txt,其内容如下

1,王国维词新释辑评,2006,叶嘉莹
2,王国维词新释辑评,2006,叶嘉莹
3,王国维词新释辑评,2006,叶嘉莹
4,南唐二主词新释辑评,2003,杨敏如
5,南唐二主词新释辑评,2003,杨敏如
6,朱自清说诗,1998,朱自清

1.3. 装入数据

LOAD DATA INFILE 'c:/books.txt' INTO TABLE books FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

1.4. 查询结果


 二、查询重复(只有重复)的记录

2.1 方法一

mysql> SELECT m.* 
       FROM books m ,
           (SELECT MIN(book_id) book_id 
                           FROM books 
                       GROUP BY title
                         HAVING count(1) > 1)n
      WHERE m.book_id = n.book_id

 

 

三、删除重复的记录

3.1 方法一

DELETE books as m FROM books m ,
         (SELECT title,MIN(book_id) book_id 
                         FROM books 
                     GROUP BY title
                       HAVING count(1) > 1)n
    WHERE m.book_id > n.book_id and m.title = n.title

 

3.2 方法二

-- 创建数据未重复的临时表 
CREATE TEMPORARY TABLE tmp_books select * from books group by title having count(1) >= 1;
-- 清除原有的数据资料 
TRUNCATE TABLE books;
-- 将临时表的数据插入正式表中 
INSERT INTO books SELECT * FROM tmp_books;
-- 删除临时表 
DROP TABLE tmp_books
 

 

 

 

  • 大小: 6.2 KB
  • 大小: 2.5 KB
分享到:
评论

相关推荐

    mysql-connector-java-5.1.30

    这个驱动包使得Java应用程序能够与MySQL数据库进行无缝通信,执行SQL查询,处理结果集,以及进行各种数据库管理任务。 **MySQL Connector/J 5.1.30详解:** 1. **简介**: MySQL Connector/J是MySQL的JDBC(Java ...

    mysql-udf-http

    1. **UDF(User Defined Function)**:MySQL UDF 允许开发者用 C/C++ 编写函数,然后在 SQL 查询语句中调用这些函数,以满足特定的数据处理需求。这极大地提高了 MySQL 的灵活性和功能性。 2. **HTTP 请求**:HTTP...

    mysql-gui-tools-5.0-r12-win32.rarMySql的GUI图形工具

    它支持SQL语法高亮、自动完成和查询历史记录,有助于提高开发效率。此外,还可以创建和保存查询,方便日后重复使用。 3. **MySQL Workbench**:虽然在5.0_r12版本中可能还未完全集成,但MySQL Workbench后来成为了...

    mysql面试题-mysql经典面试题目-数据库的基本概念-SQL语法-事务处理-索引优化-性能调优-mysql-面试题目

    MySQL支持事务处理,如BEGIN、COMMIT和ROLLBACK命令用于开始、提交和回滚事务。 主键是表中的一个或一组字段,其值唯一标识一条记录;外键则引用另一个表的主键,用于建立表与表之间的关联。主键不允许重复且不能为...

    mysql-connector-python

    通过这个驱动,你可以执行SQL查询、事务处理、游标操作等,还能利用Python的面向对象特性来操作数据库表和记录。 在Python中安装mysql-connector-python可以通过pip命令进行: ```bash pip install mysql-...

    MySQL驱动 mysql-connector-net-6.5.3

    MySqlCommand的Prepare方法可将SQL语句预先编译,多次执行时无需重复解析。 8. **连接池**:MySQL Connector/NET支持连接池机制,通过复用已建立的连接,减少了创建和销毁连接的开销,提高了系统性能。 9. **异步...

    learn-sql-the-hard-way-笨方法学sql

    - 面向对象的SQL特性,如Oracle的PL/SQL或MySQL的存储过程 通过这个课程,读者将不仅学会SQL的基础语法,还能掌握处理复杂查询、优化数据库性能以及设计高效数据库结构的技能。实践是学习SQL的关键,这本书通过...

    sql学习-sql练习-SQL必知必会

    在IT行业中,SQL(Structured Query Language)是一种标准的语言,用于管理和处理关系数据库系统。SQL学习是数据科学、数据库管理、数据分析等领域不可或缺的基础技能。"sql学习-sql练习-SQL必知必会"这个主题涵盖了...

    mysql-5.0.18-win32.zip

    3. **性能优化**:MySQL 5.0.18在查询优化器、索引处理和内存管理等方面进行了优化,提升了查询速度和整体性能。例如,改进了查询缓存机制,对于重复的SQL查询,能够更快地返回结果。 4. **复制功能增强**:MySQL的...

    删除数据表中重复记录

    本文将详细介绍如何在不同的数据库系统(如MySQL、SQL Server、Oracle等)中删除重复记录。 #### SQL删除重复记录的基本思路 删除重复记录的核心思想是先识别出哪些记录是重复的,然后通过某种方式将这些重复记录...

    MySQL删除重复记录

    MySQL作为最受欢迎的关系型数据库管理系统之一,提供了多种功能来处理数据,包括如何有效地删除重复记录。本文将深入探讨MySQL中删除重复记录的方法,以及如何利用其特性来优化数据管理流程。 ### MySQL删除重复...

    mysql彻底理解删除重复记录sql脚本,只保留一条记录

    mysql彻底理解删除重复记录sql脚本,只保留一条记录

    sql重复记录操纵汇总

    以上方法提供了在SQL中处理重复记录的基本思路,实际应用时需根据具体数据库系统(如MySQL、Oracle、SQL Server等)的语法进行适当调整。在处理大量数据时,应谨慎操作,确保数据安全,并考虑使用事务来保证操作的...

    MySQL根据某一个或者多个字段查找重复数据的sql语句

    sql 查出一张表中重复的所有记录数据 1.表中有id和name 两个字段,查询出name重复的所有数据 select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、...

    SQL primer-2018

    它是标准的语言,适用于大多数数据库管理系统(如MySQL、PostgreSQL、Oracle、SQL Server等)。 2. 数据库基础:在了解SQL之前,我们需要理解数据库的基本概念,如表、字段、记录和键。表是由行和列组成的,每一行...

    常用的SQL语句--mysql

    SQL,全称Structured Query Language,是用于管理...SQL语句的应用非常广泛,从简单的数据查询到复杂的业务逻辑处理,都离不开它的支持。熟练掌握SQL是进行数据库操作和管理的基础,也是数据分析和软件开发的重要技能。

    ansible执行mysql sql 脚本

    在IT领域,自动化工具的...总之,Ansible结合MySQL SQL脚本,为我们提供了一种高效、可重复的数据库管理方式。通过编写清晰的Playbooks,我们可以轻松地在多台服务器上执行复杂的数据库操作,节省大量手动操作的时间。

    MYSQL SQL开发从零开始学

    由于提供的文件信息中,【描述】部分内容重复,且【部分内容】部分除了提供学习资源的网站信息外,并没有包含实际的教学内容,因此无法根据这部分内容生成具体的知识点。然而,根据【标题】中提供的信息,我们可以...

    Python库 | mysql_replay-0.1.18.tar.gz

    数据库回放是测试和性能优化中的一种技术,它记录了生产环境中的真实数据库操作,然后在非生产环境中重复这些操作,以评估系统的处理能力、查找性能瓶颈或验证更改的影响。`mysql_replay` 库可以帮助开发者重现这些...

    sql ---ppt

    最后,SQL还有多种版本和变体,如MySQL、Oracle、SQL Server和PostgreSQL,它们在语法上略有差异,但基本概念和操作保持一致。 本课件的"sql2课件"可能包含了上述内容的详细讲解,通过学习,你将能够熟练运用SQL...

Global site tag (gtag.js) - Google Analytics