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

主要涉及: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_aSET col_a = 'hi' ;

登录后复制

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

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

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

登录后复制

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

DELETE aFROM 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_aWHERE a.id 

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

登录后复制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1650737.html

(0)
上一篇 2025年2月19日 05:35:00
下一篇 2025年2月19日 05:45:39

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • phpMyAdmin 3.1.1

    phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的资料库管理工具。可以管理整个MySQL服务器(需要超级用户 phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的…

    数据库 2025年2月23日
    100
  • PHP7各个版本的兼容性如何

    理论上,PHP7版本向下兼容,但实际升级可能存在细微改动导致行为差异。理解兼容性需了解PHP版本命名规则、变更日志,以及Zend引擎演进。向下兼容性仅指新版本运行旧代码,但行为可能不一致。弃用函数、扩展库不兼容是常见兼容性问题。进行全面兼容…

    2025年2月23日
    100
  • MySQL V5.1发现严重BUG 或将导致数据丢失

    Sun在上周发布了MySQL数据库软件5.1版,之后他们称包括在新特性在内,该版本存在很多bug需要进行修复。据MySQL创始人Michael Wid Sun在上周发布了MySQL数据库软件5.1版,之后他们称包括在新特性在内,该版本存在很…

    数据库 2025年2月23日
    100
  • PHP7版本更新对现有项目有哪些影响

    升级到 PHP 7 带来重大性能提升和新功能,但也会产生挑战:已废弃功能被移除,需要替换。严格的类型声明要求类型匹配,避免类型错误。数组操作优化改变了某些行为,需要测试和修复。老旧扩展库与 PHP 7 不兼容,需要更新或寻找替代方案。分步升…

    2025年2月23日
    100
  • MySQL双向复制简单配置步骤

    MySQL从3.23版本起就已经内置了复制(Replication)的功能,我们可以配置成master-slave模式,也可以配置为master-master模式。方法 MySQL从3.23版本起就已经内置了复制(Replication)的…

    数据库 2025年2月23日
    100
  • Linux下MySQL-5.1.30编译安装

    1. 配置为:./configure –prefix=/home/zengyf/local/mysql-5.1.30 –enable-local-infile –with-unix-socket-path…

    数据库 2025年2月23日
    100
  • MySQL 5.0系列新的社区稳定版5.0.75发布!

    尽管MySQL 5.1已经在发布了5.1.30后GA,但显然官方并没有停止对5.0系列的开发,今早在MySQL的ftp服务器上已经放出了新的社区稳定版 尽管MySQL 5.1已经在发布了5.1.30后GA,但显然官方并没有停止对5.0系列的…

    数据库 2025年2月23日
    100
  • MySQL不支持GBK编码的解决方法

    Linux下用packages安装的MySQL5.1,不支持GBK编码,只支持UTF8编码。具体表现:在打开一个用GBK编码的%ignore_a_1%时,提示ERROR 1273 Linux下用packages安装的MySQL5.1,不支持…

    数据库 2025年2月23日
    100
  • Rails开发中的MySQL中文问题以及简单解决方式

    Rails2.2.2对中文的支持是不错的,当然不仅仅是中文,所有多字节文字都能够很好得被支持。对于一个有很高本地化l10n和国际化i18n Rails2.2.2对中文的支持是不错的,当然不仅仅是中文,所有多字节文字都能够很好得被支持。对于一…

    数据库 2025年2月23日
    100
  • 把 MySQL 从 Windows 上移植到 Linux 下

    Windows下导出,在命令行下mysqlin目录下运行:mysqldump -uroot -p密码 -a gt;mysql_data.sql将文件 mysql_data.sql Windows下导出,在命令行下mysqlin目录下运行: …

    数据库 2025年2月23日
    100

发表回复

登录后才能评论