mysql 开发技巧之JOIN 更新和数据查重/去重

 更新时间:2016年09月29日 10:36:23   作者:_wave  
这篇文章主要介绍了mysql 开发技巧之JOIN 更新和数据查重/去重的相关资料,需要的朋友可以参考下

主要涉及:JOIN 、JOIN 更新、GROUP BY HAVING 数据查重/去重

1 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN(MySQL 不支持)、CROSS JOIN

这是在网上找到的非常好的一篇博文,图解 join 语句:

CODING HORROR-A Visual Explanation of SQL Joins

下图可以很清楚的明白,join 的数据选取范围

[][1]
[1]: http://7xs09x.com1.z0.glb.clouddn.com/160725-imooc-mysql-development-skills-notes-001.png

2 更新使用过滤条件中包括本身的表

更新 t1 t2 表中 col_a 重复的字段

UPDATE t1 
SET col_a = 'hi' 
WHERE t1.col_a IN (
 SELECT b.col_a
 FROM t1 a INNER JOIN t2 b on
 a.col_a = b.col_a
)
;
ERROR:1093 

可转换为:

UPDATE t1 aa JOIN(
 SELECT b.col_a
 FROM t1 a INNER JOIN t2 b on
 a.col_a = b.col_a
)bb on aa.col_a= bb.col_a
SET col_a = 'hi' 
;

3 查询重复数据、删除重复数据

利用 GROUP BY 和 HAVING 查询重复数据

SELECT col_a, COUNT(*)
FROM t1
GROUP BY col_a HAVING COUNT(*) > 1
;

删除重复数据,对于相同数据保留 ID 最大的

DELETE a
FROM t1 a JOIN (
 SELECT col_a,COUNT(*),MAX(id) AS id
 FROM t1
 GROUP BY col_a HAVING COUNT(*) > 1
)b ON a.col_a = b.col_a
WHERE a.id < b.id
;

感谢阅读此文,希望能帮助到大家,谢谢大家对本站的支持!

您可能感兴趣的文章:

相关文章

  • mysql 5.7.10 安装配置方法图文教程

    mysql 5.7.10 安装配置方法图文教程

    这篇文章主要为大家分享了mysql 5.7.10 安装配置方法图文教程,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • MySql8 WITH RECURSIVE递归查询父子集的方法

    MySql8 WITH RECURSIVE递归查询父子集的方法

    这篇文章主要介绍了MySql8 WITH RECURSIVE递归查询父子集的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Mysql 用户权限管理实现

    Mysql 用户权限管理实现

    MySQL 是一个多用户数据库,具有功能强大的访问控制系统,可以为不同用户指定不同权限。本文就来介绍一下Mysql 用户权限管理实现,感兴趣的可以了解一下
    2021-05-05
  • Mysql5.7定时备份的实现

    Mysql5.7定时备份的实现

    这篇文章主要介绍了Mysql5.7定时备份的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • MySQL数据库常用操作技巧总结

    MySQL数据库常用操作技巧总结

    这篇文章主要介绍了MySQL数据库常用操作技巧,结合实例形式总结分析了mysql查询、存储过程、字符串截取、时间、排序等常用操作技巧,需要的朋友可以参考下
    2018-03-03
  • MYSQL慢查询与日志的设置与测试

    MYSQL慢查询与日志的设置与测试

    这篇文章主要给大家介绍了关于MYSQL慢查询与日志的设置与测试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 详解windows下mysql的主从同步

    详解windows下mysql的主从同步

    本文主要对windows下的mysql主从同步进行详细介绍。具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • MySql带OR关键字的多条件查询语句

    MySql带OR关键字的多条件查询语句

    MySQL带OR关键字的多条件查询,与AND关键字不同,OR关键字,只要记录满足任意一个条件,就会被查询出来。即AND的优先级高于OR
    2017-07-07
  • MySQL分区表的最佳实践指南

    MySQL分区表的最佳实践指南

    这篇文章主要给大家介绍了关于MySQL分区表的最佳实践指南,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-05-05
  • MySQL Antelope和Barracuda的区别分析

    MySQL Antelope和Barracuda的区别分析

    这篇文章主要介绍了MySQL Antelope和Barracuda的区别分析,Antelope和Barracude都是一种文件格式,需要的朋友可以参考下
    2014-07-07

最新评论