主要涉及: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添加用户查重的方法_mysql 开发技巧之JOIN 更新和数据查重/去重相关推荐

  1. MyBatis实现mysql添加用户测试失败解决方法

    MyBatis添加用户单元测试没有报错,但是数据库表中数据未添加成功: 此时因为未进行事务提交导致Rolling back了,在释放资源前需要进行事务提交: sqlSession.commit();

  2. Mysql添加用户错误:ERROR 1364 (HY000): Field ‘ssl_cipher‘ doesn‘t have a default value解决方法

    Mysql添加用户错误:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value解决方法 参考文章: (1)Mysql添加 ...

  3. mysql添加用户出错_mysql添加用户inset报错1346解决办法

    我的MySQL版本为5.6.14版本,是二进制包安装的(虽然是二进制包安装的,但是以下问题同样适用于源码安装包安装的MySQL) 今天在我的测试库上添加一个新用户,报错: [mailto:mysql@ ...

  4. mysql添加用户权限报1064 - You have an error in your SQL syntax问题解决

    mysql添加用户及权限报错: 出现这样错的原因有两个: 1.语法有问题     (这里没有问题) 2.mysql版本是否支持 此种写法 找到一位大神说:你检查下mysql版本是mysql serve ...

  5. 利用mysql上传木马_通过Mysql语句生成后门木马的方法_MySQL

    通过Mysql 的语句生成后门木马的方法! SELECT * FROM `vbb_strikes` WHERE 1 union select 2,3,0x3C3F7068702073797374656 ...

  6. linux 下如何修改mysql授权,linux下mysql添加用户、删除用户、授权、修改密码

    摘要 腾兴网为您分享:linux下mysql添加用户.删除用户.授权.修改密码,之了课堂,云闪付,英语字典,易信等软件知识,以及pr安卓,彩绘大师,微软应用商店,广告屏蔽管家,pandahelper, ...

  7. mysql添加用户授予root权限和ssl连接

    mysql添加用户,授予root权限 CREATE USER 'lddTest1'@'%' IDENTIFIED BY 'ldd234'; grant all privileges on *.* to ...

  8. linux下mysql 添加用户并分配全部权限

    mysql 添加用户并分配权限 1.登录mysql     mysql -u root -p 2.跳转到mysql库     use mysql 3.创建本地访问的用户     create user ...

  9. Mysql添加用户,给用户授权

    创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; username – 你将创建的用户名说明: host – 指定该用户在哪个主 ...

最新文章

  1. 2019cvpr oral | 实时自适应立体匹配
  2. Mac 10.12安装Office 2011
  3. HIDL示例-JAVA服务创建-Client验证-Android10.0 HwBinder通信原理(四)
  4. ubuntu下安装,查看,拉取docker镜像
  5. n个人选k个c语言_leetcode之第k个缺失的正整数
  6. pwm控制舵机转动角度程序_Mixly 第15课 舵机的使用
  7. param参数服务器
  8. c++调用cplex求解例子_c++调用CPLEX环境配置
  9. eclipse添加或者绑定约束文件
  10. java 使用vsphere 创建虚拟机‘_Java数组的创建及使用
  11. FlashDevelop 3.0.0 Beta2 released
  12. 服务器放在机柜_服务器网络机柜的保养维护
  13. 自然语言处理——文本的表示
  14. mysql无法授权问题
  15. 诺奖这么多,经济还崩溃了?
  16. 计算机打印机墨水更换方法,怎么看打印机有没有墨?老司机教你查看打印机墨水量方法 (全文)...
  17. CISCO 6509 三层交换机配置
  18. 齐齐哈尔鹤城计算机学校,齐齐哈尔市鹤城高级中学
  19. 转载防丢-caffe训练集搭建
  20. LXDE桌面系统设置快捷键

热门文章

  1. 线性判别分析(LDA)和她的家人们
  2. R语言设置或查询图形参数par函数
  3. hadoop_入门1
  4. Linux下autoreconfig命令安装.
  5. 封神召唤师显示服务器爆满,封神召唤师总是显示无法连接网络
  6. serlvert jsp mysql_JAVA基础:Java多语言编码问题解析(2)
  7. tf.keras.losses.SquaredHinge 损失函数 示例
  8. python 对docker的操作 :docker-py教程
  9. 三十七、页面置换算法
  10. 开源炫酷css轮播图 可直接引入html文件使用 含注释 jQuery插件