美文网首页
MySQL处理数据重复

MySQL处理数据重复

作者: 爱折腾的傻小子 | 来源:发表于2018-10-29 11:11 被阅读6次

    菜鸟教程

    • 在mysql数据库中,我们允许数据出现重复的情况。有些时候不需要重复的数据。(所以我们有必要知道数据重复的处理方法)

    防止表中出现重复的数据

    • 表中的数据重复,是指同一张表中出现相同的一行数据。(如果我们限制某个字段不能出现重复,那么表中就不会出现重复的同一行记录)
    • 所有表中创建了primary keyunique的字段都不会出现重复的情况。(这里的索引也只能保证不会出现相同的一行记录)
     CREATE TABLE IF NOT EXISTS test(
        first_name varchar(20) not null,
        last_name varchar(20) not null,
        primary key(last_name, first_name)
     )engine innoDB default charset utf8;
    
    • 在使用索引(unique、primary key)时,该字段不要为null。
    • IF NOT EXISTS:如果test表不存在就创建。
    • primary key和unique:都能谁知多个字段。

    插入数据时,防止数据重复

    • INSERT INTOINSERT IGNORE INTO区别:INSERT IGNORE会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。
     insert into test(`name`,`age`) values('nihao',29);
     -> Query OK, 1 row affected (0.00 sec)
     insert ignore into test(`name`,`age`) values('nihao',29);
     -> Query OK, 0 row affected (0.00 sec)
    
    • INSERT IGNORE INTO当插入数据时,在设置了记录的唯一性后,如果插入重复数据,将不返回错误,只以警告形式返回。
    • REPLACE INTO 如果存在primary 或 unique相同的记录,则先删除掉。再插入新记录。

    查询过滤掉重复数据

    • 在select中可以使用 distinct 过滤掉重复数据。在查询中默认是 all 插叙得到全部数据。
     SELECT DISTINCT * FROM test GROUP BY last_name;
    

    相关文章

      网友评论

          本文标题:MySQL处理数据重复

          本文链接:https://www.haomeiwen.com/subject/gqrbyttx.html