zoukankan      html  css  js  c++  java
  • 删除数据表里重复出现的记录

    删除数据表里重复出现的记录
    例子:
        有一个数据表classes,有字段id,class,数据表里出现了多个班级名字一样的记录,现在要删除重复出现的记录。
    先查询数据表里重复出现的记录:
        SELECT id FROM classes GROUP BY class
    然后再删除查询出来的重复数据:
        DELETE FROM classes WHERE id in(SELECT id FROM classes GROUP BY class)
    抛出错误:
        [SQL]DELETE FROM classes WHERE id in(SELECT id FROM classes GROUP BY class)
        [Err] 1093 - You can't specify target table 'classes' for update in FROM clause

    错误提示就是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。

    另一种方法:
    1、创建一个临时表tmp来存放以class字段分组的所以记录的id
        CREATE TABLE tmp SELECT id FROM classes GROUP BY class;
    2、删除classes表里重复的记录
        DELETE FROM classes WHERE id NOT in(SELECT id FROM tmp);
    3、最后删除临时表
        drop  TABLE tmp;

  • 相关阅读:
    移动app测试
    centos7中tomcat安装步骤
    linux下搭建数据库
    Linux 学习笔记
    vi编辑器 使用表
    python-Xml 实战
    python-Excel 实战
    手写HashMap
    volatile关键字解析
    两个栈实现队列——优化版
  • 原文地址:https://www.cnblogs.com/TimeStory/p/4212708.html
Copyright © 2011-2022 走看看