案例:

id姓名课程名称分数1张三数学692李四数学893张三数学69删除除了自动编号不同,其他都相同的学生冗余信息

------------------------------------------------------------------------------------------------------

按常理来说,这个sql语句应该是:

delete tablename whereidnot in(select min(id) from tablename group byname,kecheng,fenshu);

这种写法在sqlserver或者Oracle中是支持的,但是MySQL目前是不支持的,会报类似错:You can't specify target table 'tablename' for update ,这是因为在mysql中不能同时查询一个表的数据再同时进行删除.

目前网上流行的一种解法是:

1)创建一个临时表,讲要查询的列的存入临时表中

create table temp as select ...

2)在temp表和原始表中进行操作

delete from tablename

3)drop temp...

但是这种做法,不仅浪费空间资源,同时也缺乏友好性。通过观察我们发现这类查询要解决的是如何将子查询中的表与主查询中的表区分开来,因此我们可以考虑用别名的方法,将子查询的结果放到一个别名中。

完整的sql语句如下:

DELETE FROM tablename where id not in (select bid from (select min(id) as bid from tablename group by name,kecheng,fenshu) as b ) ;

解释:

select bid from (select min(id) as bid from tablename group by name,kecheng,fenshu) as b

这个子查询的目的是从b中列出讲筛选结果,即bid的集合。

(select min(id) as bid from tablename group by name,kecheng,fenshu) as b

将分组结果中的最小的bid当做一个心的集合当做一个心的子表b,

注意mid(id)一定要有一个别名,这里取的是bid,作为b的一个列名,因为在上一级查询中要用到这个列名(红色标注)。

mysql删除完全重复数据库_MySQL中删除完全重复数据的准确SQL语句相关推荐

  1. mysql用一条sql语句删除重复记录_mysql中删除重复记录,并保留重复数据中的一条数据的SQL语句...

    正好想写一条删除重复语句并保留一条数据的SQL,网上查了一部分资料写的很详细,但还是在这里写下自己的理解,以遍后续学习 .如下: 表字段和数据: SQL语句: DELETE FROM`user`WHE ...

  2. mysql删除重复sql_mysql中删除完全重复数据的准确SQL语句

    删除数据库中重复的记录,只保留一条 DELETE FROM tb_gps_records WHERE id NOT IN (SELECT bid FROM (SELECT min(id) as bid ...

  3. mysql函数 字符长度限制_MySQL中使用group_concat()函数数据字符过长报错的问题解决方法...

    最近在办公软件项目,在开发权限指标遇到一个问题: 我们系统的一些逻辑处理是用存储过程实现的,但是有一天客户反馈说权限指标分配报错,查了分配的权限数据牵扯到的数据权限基础资源,没有问题. 权限指标分配的 ...

  4. pdo插入mysql数据出错_php中通过pdo插入数据时,sql语句错误?

    再次先谢谢各位大佬!! 接下来直接看代码: include 'mysql_ini.php'; $sql_select = "select * from word where word = ? ...

  5. mysql中筛选不重复值_MYSQL中筛选不重复记录值的示例

    我的wordpress数据库中的wp_postmeta表都有10,000多行了,如果使用两次循环查找判断,虽然我们不累,但是程序运行很累啊. 如果我想用一条语句查询得到name不重复的所有数据,那就必 ...

  6. 从数据库表中随机获取N条记录的SQL语句

    Oracle:        select * from (select * from tableName order by dbms_random.value) where rownum < ...

  7. mysql 事务隔离详解_MySQL 中事务、事务隔离级别详解

    一.事务的概念 1.事务的概念 2.在mysql中哪些存储引擎(表类型)支持事务哪些不支持 3.事务的四个属性 4.mysql事务的创建与存在周期 5.mysql行为 6.事务的隔离性和性能 7.my ...

  8. 云原生数据仓库AnalyticDB Mysql(ADB分析型数据库)-DML语法之新增插入数据详解

    云原生数据仓库AnalyticDB Mysql(ADB分析型数据库)-DML语法之新增插入数据 ADB分析型数据库,是阿里云平台上资源,原名叫云原生数据仓库AnalyticDB Mysql,俗称ADB ...

  9. 命令行客户端MySQL基本命令的使用(登录、登出、数据库操作的SQL语句、表结构的SQL语句、表数据操作的SQL语句)

    1. 登录和登出数据库 登录数据库: 输入下面命令: mysql -uroot -p 说明: -u 后面是登录的用户名  [写成-u root也是可以的] -p 后面是登录密码, 如果不填写, 回车之 ...

最新文章

  1. arm-linux-ld中的参数,arm-linux-ld指令详解
  2. Winform中对DevExpress的RadopGroup的Description、Value、Tag、Text的理解与使用
  3. CPU缓存一致性协议MESI
  4. MFC学习中遇到的小问题和解决方案
  5. 【SSM面向CRUD编程专栏 2】Spring相关API 数据源(连接池)的配置 注解开发 整合junit
  6. Jeecg-boot 2.4.6+ 多租户改造方案(涉及菜单部门角色等基础模块)
  7. 过半中国人是工具类 App 活跃用户,为什么变现却这么难?
  8. gpt linux双系统安装win7系统分区格式化,如何在GPT分区格式上安装win7 64位系统
  9. Mysql批量添加数据
  10. 2011年国内五款值得关注网店系统
  11. 外键的约束(Mysql、PostgreSQL)
  12. (转)那些年不容错过的硅谷IT公司
  13. 蔡司数码视疲劳测试软件_[专题]重度近视别担心!!蔡司数码型镜片真实测评,带给我不一样的体验...
  14. 终端溯源图构建工具SPADE专题-1 SPADE工具安装
  15. CAD梦想画图中的“阵列命令”
  16. 关于将LIUNX下的图形化操作倾向WINDOWS的几个东西
  17. 00815 计算机基础,国开(山东)00815-计算机应用基础-模块1 windows 7 操作系统——客观题-辅导资料...
  18. jupyter notebook文件保存路径
  19. android酷狗缓存目录,酷狗缓存的歌曲在哪个文件夹_酷狗音乐缓存的歌曲在电脑哪个目录-win7之家...
  20. Hive查询报错,return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

热门文章

  1. java 性能调优_Java性能调优调查结果(第一部分)
  2. Hibernate中保存与持久性以及saveOrUpdate之间的区别
  3. Java Optionals获得更具表现力的代码
  4. idea 不能及时编译_您是否能及时编译?
  5. Java向后不兼容历史的观察
  6. java io顺序_Java顺序IO性能
  7. JBoss Fuse:使用JEXL的动态蓝图文件
  8. 从源文件和JAR文件构建Java代码模型
  9. spring.jpa配置_使用JPA和Spring 3.1进行事务配置
  10. 用jOOQ用Java编写SQL