mysql去掉重复行命令

mysql去掉重复行命令

问:mysql去掉重复行
  1. 答:删除数据表中重复数据,可以使用以下SQL语句:
    mysql> CREATE TABLE tmp SELECT no, name, sex FROM student GROUP BY (no, sex);
    mysql> DROP TABLE student;
    mysql> ALTER TABLE tmp RENAME TO student;
    也可以在数据表中添加INDEX(索引)和 PRIMAY KEY(主键)来删除表中的重复记录,方法如下:
    mysql> ALTER IGNORE TABLE student
    -> ADD PRIMARY KEY (no);
问:如何删除mysql中的重复行
  1. 答:假如我有一张表,
    数据在某一个字段有重复(比如我现在的ID重复了)
    那么我使用:
    SELECT id,COUNT(*) FROM table
    GROUP BY id
    HAVING COUNT(*) > 1;
    语句 意思:
    从读下来是 查询id,并且统计行数
    数据来自 table表
    按照id列进行分组(如果我们按照性别分组,那么现出来的数据只有"男 女")
    当统计完成后,count的结果大于1才予以显示
    简单的来说就是根据id列进行分组统计,大于1的所有数据显示出来:
    使用DELETE 配合 IN 进行删除(IN 如果里面是SQL语句,请尽量不要用于线上程序):
    DELETE FROM table WHERE
    id IN (
    SELECT id FROM (
    SELECT id,COUNT(*) FROM table
    GROUP BY id
    HAVING COUNT(*) > 1
    ) AS a
    ) LIMIT 1;
问:mysql删除完全重复行,求教
  1. 答:假如我有一张表,数据在某一个字段有重复(比如我现在的ID重复了)
    那么我使用:
    SELECT id,COUNT(*) FROM table
    GROUP BY id
    HAVING COUNT(*) > 1;
    语句 意思:
    从读下来是 查询id,并且统计行数
    数据来自 table表
    按照id列进行分组(如果我们按照性别分组,那么现出来的数据只有"男 女")
    当统计完成后,count的结果大于1才予以显示
    简单的来说就是根据id列进行分组统计,大于1的所有数据显示出来:
    使用DELETE 配合 IN 进行删除(IN 如果里面是SQL语句,请尽量不要用于线上程序):
    DELETE FROM table WHERE
    id IN (
    SELECT id FROM (
    SELECT id,COUNT(*) FROM table
    GROUP BY id
    HAVING COUNT(*) > 1
    ) AS a
    ) LIMIT 1;
  2. 答::一张表里面以两个字段为唯一字段,当几条记录的这两个字段完全相同时,需要删除重复项,如下表: a b c d 1 2 3 4 1 5 3 5 1 2 7 9 以a、b为唯一字段,第一条和第三条的a、b完全相同,所以,需要删除第一条记录1 2 3 4 或者第三条记录1 2 7
mysql去掉重复行命令
下载Doc文档

猜你喜欢